📜  如何从 mongodb 中的文档中删除字段 (1)

📅  最后修改于: 2023-12-03 14:51:45.718000             🧑  作者: Mango

如何从 MongoDB 中的文档中删除字段

MongoDB 是一个面向文档的 NoSQL 数据库,它的文档是一个类 JSON 格式的数据。在 MongoDB 中删除文档中的字段可以使用 $unset 操作符。下面我们更深入地了解一下。

$unset 操作符

$unset 操作符是 MongoDB 中用于删除文档中某个字段的操作符。它的语法如下:

db.collection.updateOne(
   { <query> },
   { $unset: { <field1>: "", ... } }
)

其中,db.collection.updateOne() 是用于更新一个文档的函数,<query> 是一个查询条件,用于找到需要更新的文档。<field1> 是需要删除的字段名。

删除单个字段

下面我们来看一个例子,假设我们有一个名为 users 的集合,其中的文档长这样:

{
   "_id" : ObjectId("61eb1f6ec4c6d4aa6e3ddc50"),
   "name" : "Alice",
   "age" : 20,
   "email" : "alice@example.com",
   "phone" : "1234567890"
}

现在我们想要删除 phone 字段,可以使用下面的代码:

db.users.updateOne({ name: "Alice" }, { $unset: { phone: "" } })

执行完毕后,该文档会变成这样:

{
   "_id" : ObjectId("61eb1f6ec4c6d4aa6e3ddc50"),
   "name" : "Alice",
   "age" : 20,
   "email" : "alice@example.com"
}
删除多个字段

如果我们想要删除多个字段,可以在 $unset 中写入多个字段名,以逗号分隔。例如,下面的代码可以删除 phoneemail 两个字段:

db.users.updateOne({ name: "Alice" }, { $unset: { phone: "", email: "" } })

执行完毕后,该文档会变成这样:

{
   "_id" : ObjectId("61eb1f6ec4c6d4aa6e3ddc50"),
   "name" : "Alice",
   "age" : 20
}
总结

在 MongoDB 中删除文档中的字段,可以使用 $unset 操作符,它的语法如下:

db.collection.updateOne(
   { <query> },
   { $unset: { <field1>: "", ... } }
)

其中,<query> 是一个查询条件,用于找到需要更新的文档,<field1> 是需要删除的字段名。上述操作支持删除单个字段或多个字段。