如何在mongodb中查询具有数组的集合

时间:2016-10-22 12:06:46

标签: mongodb database nosql

我有一个包含4个对象项的数组我想查询我的收藏并返回4个具有此对象的项...

myArray = > [{uid : 'test'},{uid : 'test2'},{uid : 'test3'},{uid : 'test4'}]

ProductCollection.find({????},(err,result)=>{})

注意:我不想使用任何循环

1 个答案:

答案 0 :(得分:0)

  

我不想使用任何循环

我将假设这与多次查询数据库有关,每个uid值一次。

无论如何,您可以使用MongoDB的$in operator来过一次数据库来过滤与值数组匹配的元素,例如您的情况。

但是你必须将uid值格式化为值本身的数组而不是数组的objets,这可以通过简单的.map调用来完成(不知道你是否将认为这是一个循环)以正确的格式获取过滤器值。

var uids = myArray.map((item) => item.uid })
// ['test', 'test2', 'test3', 'test4']

之后,您可以使用此uid值

查询您的数据库
ProductCollection.find({'uid': {'$in': uids} },(err,result)=>{})

(假设您'uid'中的ProductCollection属性是您要过滤的属性