我有一个Meteor应用程序,其中包含一组聊天组。此集合中的每个文档都如下所示:
{groupname: 'name', whitelist: ['person1', 'person2', 'person3'], messages:['message1', 'message2', 'message3']}
要向每个人显示他们所属的群组,我需要一个页面,其中包含他们允许进入的群组列表。如何使用find()命令返回所有文档其白名单数组包含用户名?
答案 0 :(得分:0)
这样的事情:
ChatGroups.find({whitelist: Meteor.user().username});
这假定username
是您要匹配的属性。在这种情况下,你不需要做任何特殊的事情来搜索数组 - mongo将做正确的事情(将username
与每个whitelist
的每个元素进行比较并返回那些匹配的文档。 / p>
答案 1 :(得分:0)
要按数组项搜索MongoDB,请使用$in
运算符:
ChatGroups.find({
whitelist: {
$in: [Meteor.user()._id]
}
});