使用猫鼬在对象数组内查找键

时间:2020-05-28 08:15:46

标签: arrays mongodb mongoose nested find

我有物品清单表(如图片)。现在,我想找到一个name包含searchString的对象。
我尝试过类似db.getCollection('vehicles').find({'result': {'name': 'A-WING FIGHTER'}})的查询,但看起来不对。
在这种情况下,如何获取真实数据?

enter image description here

3 个答案:

答案 0 :(得分:0)

查看以下命令是否有效-

db.getCollection('vehicles').find({'results': {'name': 'A-WING FIGHTER'}})

您将结果命名为结果。尝试一下是否可以正常工作...

您也可以尝试使用以下代码段-

db.getCollection('vehicles').find({ results.name: 'A-WING FIGHTER' });

答案 1 :(得分:0)

通过

db.getCollection('vehicles').find({ 'result': { 'name': 'A-WING FIGHTER' } })

您要搜索完全匹配,因此结果必须是仅具有属性名称的对象

您应该改用点符号

db.getCollection('vehicles').find({ 'results.name': 'A-WING FIGHTER' })

希望有帮助

答案 2 :(得分:0)

要在MongoDB中搜索数组的数组,可以使用$ elemMatch运算符。

尝试此查询(此查询基于您共享的图片)

db.getCollection('items').find({'results': {'$elemMatch: {'$elemMatch: {'name': 'A-WING FIGHTER'}}}})

希望这会有所帮助。