【问题标题】:Query for a field in an object in array with Mongo?使用Mongo查询数组中对象中的字段?
【发布时间】:2013-06-12 20:56:50
【问题描述】:

是否可以使用 Mongo 查询在数组中的对象的字段中具有特定值的条目。

例如,假设我要查找 field1 具有对象数组的所有对象,其中一个对象的字段“one”的值为 1。此查询应从我的集合中返回以下对象:

{_id: 0000, field1: [{one: 1, two: 2}, {one: 'uno', two: 'dos'}]}

【问题讨论】:

  • 你的意思是文档数组吗?
  • 这是一个 JSON 对象数组。

标签: mongodb


【解决方案1】:

我想你需要的是:

db.collection.find( { field1: { $elemMatch: { one: 1 } } } );

http://docs.mongodb.org/manual/reference/operator/elemMatch/#op._S_elemMatch

【讨论】:

  • 深度嵌套数组怎么样
  • 将此查询结果保存在 javascript 列表中的语法是什么?
【解决方案2】:

这是一个老问题,但执行此查询的更简单方法是使用dot notation:

db.collection.find({'field1.one': 1})

【讨论】:

    猜你喜欢
    • 2019-03-08
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 2021-01-09
    相关资源
    最近更新 更多