【问题标题】:How to delete the field in the mongodb collection?如何删除mongodb集合中的字段?
【发布时间】:2019-05-18 11:20:05
【问题描述】:

我在 mongodb 中有一个数据集合,如下所示:

{
    { "_id" : ObjectId("1"), "name" : "ABC", "group" : [ObjectId("11"), ObjectId("12"), ObjectId("13")]}
    { "_id" : ObjectId("2"), "name" : "DEF", "group" : [ObjectId("21"), ObjectId("22"), ObjectId("23")]}
}

我想删除文档中group 字段中的ObjectId("11") ObjectId("1").

我尝试了下面的代码:

aId = "1" 
bId = "11"
db.collection.updateOne({ _id: ObjectId(aId) }, { $pull: { group: { _id: ObjectId(bId) } } })

但是失败了。

我也试过了:

aId = "1" 
bId = "11"
db.collection.updateOne({ _id: aId }, { $pull: { group: { _id: bId } } })

但还是删除失败。

我的代码有什么问题吗?

【问题讨论】:

  • 字段组只是一个 Object Ids 数组。试试db.collection.updateOne({ _id: aId }, { $pull: { group: bId } })
  • MongoDB $pull syntax的可能重复
  • @MukulDev 同意。但它必须是ObjectId(bId),不是吗?
  • @Coolguy 是的,应该是objectId(bId)

标签: javascript html node.js database mongodb


【解决方案1】:

像这样使用$unset

db.products.update(
{ sku: "unknown" },
{ $unset: { quantity: "", instock: "" } })

此代码将从 products 集合中的第一个文档中删除字段 quantity 和 instock,其中字段 sku 的值为 unknown。 For more info

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2012-04-07
    • 1970-01-01
    • 2016-04-02
    • 2022-06-23
    相关资源
    最近更新 更多