2016-08-23 147 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"]}}})