MongoDB - 查询匹配数组值的多个文档;
MongoDB中的问题:查询匹配数组值的多个文档
问题的出现原因:在MongoDB数据库中,我们需要根据给定的数组值来查询匹配的多个文档。在上述代码中,我们首先创建了一个包含两个对象的数组array1,每个对象包含_id和quantity属性。然后,我们使用map函数将array1中的_id属性提取到另一个数组array2中。接下来,我们希望使用array2中的值来查询数据库中匹配的文档。
解决方法:为了解决这个问题,我们使用了MongoDB的$in操作符。$in操作符用于在一个字段中匹配多个值。在上述代码中,我们使用$in操作符将array2中的值传递给db.objects.find()函数的查询条件。然后,我们使用toArray()方法将返回的游标转换为数组。最终,我们得到了满足查询条件的多个文档,存储在数组array3中。
以下是完整的代码示例:
let array1 = [{_id: '123151djadjw11', quantity: 1}, {_id: 'some4idda123131', quantity: 2}]; let array2 = array1.map(a => a._id); // array2 = ['123151djadjw11', 'some4idda123131']; let array3 = db.objects.find({_id:{$in : array2}}).toArray(); // array3 = [{_id: '123151djadjw11', quantity: 1}, {_id: 'some4idda123131', quantity: 2}]
通过以上代码,我们成功地根据给定的数组值查询了匹配的多个文档。这种方法对于需要根据数组中的值来查询数据库的情况非常有用。