2016-08-23 143 views
0

尋找屬於羣組的一部分的用戶。Mongo:搜索子陣列

這是一個用戶:

meteor:PRIMARY> db.users.find({_id:"rYHRMPpdXRa8fPXrj"}) 

下面是結果的單個用戶:

{ "_id" : "rYHRMPpdXRa8fPXrj", "profile" : { "firstName" : "C", "groups" : [ "GJcqFCnSzfvJbuTMS", "gxD85kTiXmbtwaKfo" ]} 

我試圖找到...

db.users.find({"groups":"rYHRMPpdXRa8fPXrj"}) 
db.users.find({"profile.groups":"rYHRMPpdXRa8fPXrj"}) 
db.users.find({profile:{"groups":"rYHRMPpdXRa8fPXrj"}}) 
db.users.find({"profile":{"groups":"rYHRMPpdXRa8fPXrj"}}) 
db.users.find({"profile":{"groups":["rYHRMPpdXRa8fPXrj"]}}) 
db.users.find({profile:{"groups":"rYHRMPpdXRa8fPXrj"}}) 
db.users.find({profile:{groups:"rYHRMPpdXRa8fPXrj"}}) 
db.users.find({profile:{groups:["rYHRMPpdXRa8fPXrj"]}}) 
db.users.find({profile:{$elemMatch:{groups:["rYHRMPpdXRa8fPXrj"]}}}) 
db.users.find({profile:{$elemMatch:{groups:"rYHRMPpdXRa8fPXrj"}}}) 
db.users.find({profile:{groups:{$in:["rYHRMPpdXRa8fPXrj"]}}}) 

我什麼也沒得到。 ARRRG!

如何查找特定profile.group中的所有用戶?

回答

2

您正將您的用戶_id傳遞給您的查詢而不是組ID(?)。

嘗試:

db.users.find({"profile.groups":"GJcqFCnSzfvJbuTMS"}) 

例如

+0

衛生署!謝謝,叫醒。此外,瞭解嵌套數據點的語法也很棒,例如「profile.groups」。真棒。有效。 –

-2

$所有應該使用項目陣列中的過濾:

db.users.find({profile:{groups:{$all:["rYHRMPpdXRa8fPXrj"]}}})