Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 对象内部数组的Collection.find()_Node.js_Mongodb_Meteor_Mongoose - Fatal编程技术网

Node.js 对象内部数组的Collection.find()

Node.js 对象内部数组的Collection.find(),node.js,mongodb,meteor,mongoose,Node.js,Mongodb,Meteor,Mongoose,我有一个Meteor应用程序,它有一组聊天组。此集合中的每个文档如下所示: {groupname:'name',白名单:['person1','person2','person3'],消息:['message1','message2','message3']} 要向每个拥有帐户的人显示他们所属的组,我需要一个页面,其中包含允许他们加入的组的列表。如何使用find()命令返回其白名单数组包含用户名的所有文档?类似以下内容: ChatGroups.find({whitelist: Meteor.us

我有一个Meteor应用程序,它有一组聊天组。此集合中的每个文档如下所示:

{groupname:'name',白名单:['person1','person2','person3'],消息:['message1','message2','message3']}

要向每个拥有帐户的人显示他们所属的组,我需要一个页面,其中包含允许他们加入的组的列表。如何使用find()命令返回其白名单数组包含用户名的所有文档?

类似以下内容:

ChatGroups.find({whitelist: Meteor.user().username});

这假定
username
是要匹配的属性。在这种情况下,您无需执行任何特殊操作即可在数组中搜索-mongo将执行正确的操作(将
用户名
与每个
白名单
的每个元素进行比较,并返回匹配的文档)。

要按数组项在MongoDB中搜索,请使用
$in
运算符:

ChatGroups.find({
   whitelist: {
      $in: [Meteor.user()._id]
   }
});

参考资料:

对象必须是嵌入文档还是仍然可以是数组?您能举个例子吗?我不太明白你的意思。我认为仅仅阅读的文档将是有用的-它涵盖了很多用例。