我有一个包含4个对象项的数组我想查询我的收藏并返回4个具有此对象的项...
myArray = > [{uid : 'test'},{uid : 'test2'},{uid : 'test3'},{uid : 'test4'}]
ProductCollection.find({????},(err,result)=>{})
注意:我不想使用任何循环
答案 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
属性是您要过滤的属性