MongoDB - 查询匹配数组值的多个文档;

25 浏览
0 Comments

MongoDB - 查询匹配数组值的多个文档;

我正在尝试根据文档ID数组查询多个文档。

以下是一个示例数组:[{_id: '123151djadjw11', quantity: 1}, {_id: 'some4idda123131', quantity: 2}];

我想能够将这样的数组发送到服务器,并检索与数组中每个对象的ID属性匹配的文档。

非常感谢任何想法!

提前致谢!

0
0 Comments

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}]

通过以上代码,我们成功地根据给定的数组值查询了匹配的多个文档。这种方法对于需要根据数组中的值来查询数据库的情况非常有用。

0