【问题标题】:Find Null or Zero Values in MongoDB Nested Array在 MongoDB 嵌套数组中查找空值或零值
【发布时间】:2021-07-29 04:11:24
【问题描述】:

假设我的 mongo 集合名为 my_collection。 my_collection 中一条记录的示例如下所示:

{ 
   "_id" : ObjectId("1"),
   "field1" : "blah",
   "field2" : {
      "1" : "28",
      "2" : null,
      "3" : "0"
      }
}

某些记录在“field2”中可能有空值或零值,而其他记录可能没有。

我需要找到一条记录,其中“field2”中的键为任意值(“1”-随便),并且该键的值为 null 或等于 0。

如何使用 findOne 编写语句来做到这一点?

【问题讨论】:

  • field2 是数组还是对象?
  • 我会说 field2 是一个对象,它的值是一个数组
  • 您的示例中没有数组。请提供有效的样本数据。
  • 抱歉,我假设“field2”下的数据将被称为数组。我从问题中删除了该语言。尽管如此,我给出的示例记录还是准确地表示了它的存储方式。

标签: mongodb mongodb-query


【解决方案1】:

MongoDB's findOne 可以使用嵌套对象和数组。

db.collection.findOne({
    field2: {
        2: null
    }
})

db.collection.findOne({
    fields: [
        {
            2: null
        }
    ]
})

【讨论】:

  • 是的,但是我需要找到任何值为 null 或 0 且不指定键 2 或 3 的记录。
  • @fjjones88 你可以只做[ 0 ][ null ],但我自己没有测试过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-15
  • 2022-11-11
  • 1970-01-01
  • 2015-06-20
  • 2015-05-18
  • 1970-01-01
相关资源
最近更新 更多