mongodb - 在 mongodb 中,如何将具有空值的数组字段替换为空数组

标签 mongodb mongodb-query aggregation-framework

我想将文档中值为 null 的数组字段替换为空数组 []。我尝试了这个查询,但它不起作用。请帮忙。

基本上我希望 testArray: nulltestArray: []

db.myTestCollection.aggregate( { "_id": ObjectId('1120191011212112') },
   [ { $set: { testArray: { $ifNull: [ { $concatArrays: [ "$testArray", [] ] } ] } } }
])

最佳答案

看起来您主要有语法错误。但您也可以将 $ifNull 逻辑移至过滤器谓词中,这样,如果现有 testArray 字段尚未 null,则不会考虑/应用任何更新。所以:

db.collection.update({
  _id: 1,
  "testArray": null
},
[
  {
    $set: {
      testArray: []
    }
  }
])

工作中playground example here .

关于mongodb - 在 mongodb 中,如何将具有空值的数组字段替换为空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73951045/

相关文章:

java - 使用内部管道查找 Mongo java 驱动程序

java - 使用 Spring Data MongoDB 在应用程序启动时加载初始数据

javascript - 如何比较数组并计算匹配项

mongodb - 如何在 Mongo 中独立地按日期和时间进行过滤?

mysql - MongoDB 中的 Atomic 转账

bash - 多个数据库和集合 mongodump

java - 更改嵌套对象的值 - MongoDB Java

javascript - Mongoose.Find() 与数组和 OR 运算符

mongodb-query - 如何使用spring data mongodb查询mongodb文档中的json数组

MongoDB 获取当前日期的文档