javascript 查找过滤器在Moongose中对引用实体不起作用

toiithl6  于 2023-01-16  发布在  Java
关注(0)|答案(1)|浏览(112)

我有两个实体:组织和应用程序。一个组织可以有多个应用程序。

const organization = mongoose.Schema(
    {
        name: {
            type: String,
            required: [true, 'Organization name is required.']
        }, // min 1 max 255
        // administrators get it from user table with org and role.
        applications: [
            // use populate in query
            {
                type: mongoose.Types.ObjectId,
                ref: 'Application'
            }
        ]

我正在尝试使用两个应用程序查询Organization,但它返回了一个空数组

const organizations = await Organization.find({
                'applications._id': {
                    $all: [
                        '636bdf70bcd2d24005061023',
                        '6373ba91f53f95ca187809d6'
                    ]
                }
            }).populate('applications');

我试着在MongoDB指南针中运行同样的表达式,它起作用了。我在这里做错了什么?

h22fl7wq

h22fl7wq1#

根据您的模式模型,applications字段是ObjectID数组,而不是每个对象都具有_id属性的对象数组。
因此,它应该是applications,而不是applications._id

const organizations = await Organization.find({
  applications: { 
    $all: ['636bdf70bcd2d24005061023', '6373ba91f53f95ca187809d6'] 
  }
})
.populate('applications');

相关问题