Mongoose:在数组中search
我有这个模式:
new mongoose.Schema({ providers : [{ provider: { type: String, required: true }, data : { type : String, unique: true } }] });
例如,一个项目可以是:
providers: [{provider: "linkedin", data: "abcd"}, {provider: "twitter", data: "efgh"}]
我想在Mongoose中search:provider ==“linkedin”和data =“abcd”。
你知道如何做到这一点?
使用$elemMatch
来匹配同一元素中的多个字段:
Model.find({providers: {$elemMatch: {provider: 'linkedin', data: 'abcd'}}})
下面也会起作用,但是更脆弱,因为它需要元素的精确匹配,没有额外的字段和两个字段以相同的顺序。
Model.find({providers: {provider: 'linkedin', data: 'abcd'}})