【问题标题】:How to remove elements with missing field in a MongoDB array?如何删除 MongoDB 数组中缺少字段的元素?
【发布时间】:2021-05-04 18:50:22
【问题描述】:

最近在自学MongoDB和Python,遇到了这个问题。

https://i.stack.imgur.com/acQxl.png

对于object 1-3,其中有date 信息,但某些对象上不包含日期。如何使用 MongoDB 和 Python 脚本删除其中的object that doesn't contain date?提前致谢。

【问题讨论】:

标签: python arrays mongodb pymongo


【解决方案1】:

试试吧

update(
{} ,
{ "$pull": { data :{ date: { "$exists":  false } }} },
false,true)

【讨论】:

  • 此命令在我的 MongoDB 中不起作用..它弹出未知表达式 $exists
  • 如果您使用双 cotatiob 或不使用 $ 发生了什么?
  • 我设法让它在我的 MongoDB 上运行。谢谢。这与在 Python 3 中的方式相同吗?
【解决方案2】:

使用$pull 从数组中删除项目。

$pull

查找update 的一部分:在date 字段上使用$exists 来检查是否存在。

db.coll.update({},
{
  "$pull": {
    "arr": {
      "a": {
        exists: false
      }
    }
  }
})

【讨论】:

  • 我想过使用 $pull 但我认为 pull 是针对现有数据的。你能告诉我上面问题的命令吗?谢谢
  • db.coll.update({}, { "$pull": { "arr": { "a": { exists: false } } } }) 请试试这个
猜你喜欢
  • 1970-01-01
  • 2013-06-02
  • 2016-02-25
  • 1970-01-01
相关资源
最近更新 更多