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 ]
}
网友评论