2016-12-31 139 views
0

我有一個集合與數組存在價值:我想使用$in操作貓鼬,檢查是否在對象

我用這個至今:

Person.find({members: {"$in": [id1]}}) 

但我已經知道這個缺陷:如果成員數組像Members: [id1, id2, ... id3]那樣的方法可行。但它是一組對象。那麼我該如何解決它?

回答

1

$elemMatch可以用Arrays of Embedded Documents使用:

你的情況,你可以嘗試:

Person.find({ 
    members: { 
     $elemMatch: { id: id1 } 
    } 
}); 

但由於它是一個Single Query Condition

Person.find({ 
    "members.id": id1 
}); 

會做的伎倆。

+1

最好的答案海事組織。 – r3wt

0

您可以使用members.id爲場中查詢到符合您子id S:

Person.find({ "members.id": { "$in": ["id1"] } })