美文网首页mongodb
【mongoDB】mongoDB 修改表中字段值为数组的操作

【mongoDB】mongoDB 修改表中字段值为数组的操作

作者: Bogon | 来源:发表于2023-05-17 00:01 被阅读0次

mongoDB testDB库testColl表中数据:

{
    "_id" : "6459b697b3123468bab2de13",
    "name" : "test",
    "eid" : "10086",
    "oid" : "5deb6a4ed08e980da7a6cb56",
    "admins" : [
        "5deb6a4ed08e980da7a6cb56"
    ],
    "members" : [
        "5deb6a4ed08e980da7a6cb56",
        "5deda56dd08e32bcefa9c1e6"
    ],
    "createTime" : ISODate("2023-05-09T02:57:27.955Z"),
    "updateTime" : ISODate("2023-05-09T02:57:27.955Z"),
    "deleted" : false
}

$push 表示添加元素操作
$pull 表示减少元素操作
$set 表示修改元素操作

id是要修改的文档的id,admins是要添加元素的字段

往admins值中的数组中加元素

db.testColl.update(
{ _id: "6459b697b3691468bab2de13" }, 
{ $push: { admins: "5deb6a4ed08e980da7a6cb56" } } 
)

修改oid的值

db.testColl.update(
{ _id: "6459b697b3691468bab2de13" }, 
{ $set: { oid: "5deb6a4ed08e980da7a6cb56" } } 
)

从admins值中的数组中减元素

db.testColl.update(
{ _id: "6459b697b3691468bab2de13" }, 
{ $pull: { admins: "698974f6-7469-11e7-8e13-005056a350a6" } } 
)

mongoDB中 $push 操作符

在 MongoDB 中,$pull 操作符用于从数组中删除匹配某个条件的元素。$pull 操作符可以用于更新操作,其语法如下:

db.collection.updateOne(
   <query>,
   { $pull: { <field>: <condition> } }
)

其中,db.collection 是要更新的集合名称,<query> 是一个查询条件,用于匹配要更新的文档,<field> 是包含要删除元素的数组字段名称,<condition> 是一个条件,用于匹配要删除的元素。

例如,假设我们有以下文档:

{
  "_id": 1,
  "scores": [ 80, 85, 90, 85 ]
}

现在我们想要从 scores 数组中删除所有值为 85 的元素,可以使用以下命令:

db.collection.updateOne(
   { "_id": 1 },
   { $pull: { "scores": 85 } }
)

执行以上命令后,文档将会变成:

{
  "_id": 1,
  "scores": [ 80, 90 ]
}

注意,$pull 操作符会删除数组中所有匹配条件的元素,而不仅仅是第一个匹配的元素。
如果要删除所有匹配的元素,可以使用 $pullAll 操作符。

mongoDB中 $push 操作符

在 MongoDB 中,$push 操作符用于向数组中添加一个或多个元素。$push 操作符可以用于更新操作,其语法如下:

db.collection.updateOne(
   <query>,
   { $push: { <field>: <value> } }
)

其中,db.collection 是要更新的集合名称,<query> 是一个查询条件,用于匹配要更新的文档,<field> 是要添加元素的数组字段名称,<value> 是要添加的元素值。

例如,假设我们有以下文档:

{
  "_id": 1,
  "scores": [ 80, 85, 90 ]
}

现在我们想要向 scores 数组中添加一个新的元素 95,可以使用以下命令:

db.collection.updateOne(
   { "_id": 1 },
   { $push: { "scores": 95 } }
)

执行以上命令后,文档将会变成:

{
  "_id": 1,
  "scores": [ 80, 85, 90, 95 ]
}

注意,如果要向数组中添加多个元素,可以使用 $each 修饰符。例如,要添加两个元素 95 和 100,可以使用以下命令:

db.collection.updateOne(
   { "_id": 1 },
   { $push: { "scores": { $each: [ 95, 100 ] } } }
)

执行以上命令后,文档将会变成:

{
  "_id": 1,
  "scores": [ 80, 85, 90, 95, 100 ]
}

相关文章

网友评论

    本文标题:【mongoDB】mongoDB 修改表中字段值为数组的操作

    本文链接:https://www.haomeiwen.com/subject/ijhbsdtx.html