猫鼬:搜索数组

时间:2015-05-12 16:59:42

标签: node.js mongodb mongoose database

我有这个架构:

href

例如,一个项目可以是:

new mongoose.Schema({
    providers : [{
            provider: { type: String, required: true },
            data : { type : String, unique: true }
        }]
});

我想在Mongoose中搜索:provider ==“linkedin”和data =“abcd”。

你知道如何实现这个目标吗?

1 个答案:

答案 0 :(得分:5)

使用$elemMatch匹配相同元素中的多个字段:

Model.find({providers: {$elemMatch: {provider: 'linkedin', data: 'abcd'}}})

以下内容也可以使用,但更加脆弱,因为它需要元素的精确匹配,没有额外的字段,并且两个字段的顺序相同。

Model.find({providers: {provider: 'linkedin', data: 'abcd'}})