mongodb 插入/更新/删除 文档

插入文档

db.collection.insertOne() 用于向集合插入一个新文档,如下:

1
db.movies.insertOne({"title" : "Stand by Me"})

db.collection.insertMany() 用于向集合插入一个多个文档,如下:

1
2
3
4
5
6
db.movies.insertMany(
    [
        {"_id": 3, "title": "Sixteen Candles"},
        {"_id": 4, "title": "The Terminator"}
    ],
    {"ordered": false})

ordered:指定是否按顺序写入,默认 true,按顺序写入。

虽然 insert 等方法仍然支持向后兼容,但今后不应该在应用程序中继续使用。应该使用 insertOne 和insertMany 来创建文档。

 

删除文档

deleteOne 和deleteMany 两种方法。这两种方法都将筛选文档(filter document)作为第一个参数。

1
2
db.movies.deleteOne({"_id": 4})
db.movies.deleteMany({"year": 1984})

数据删除是永久性的。没有任何方法可以撤回删除文档或者删除集合的操作,也无法恢复被删除的文档,当然从以前的备份中恢复除外。

 

更新文档

updateOne、updateMany 和 replaceOne。

updateOne 和 updateMany都将筛选文档作为第一个参数,将变更文档作为第二个参数,后者对要进行的更改进行描述。

replaceOne 同样将筛选文档作为第一个参数,但第二个参数是一个用来替换所匹配的筛选文档的新文档。
更新文档是原子操作:如果两个更新同时发生,那么首先到达服务器的更新会先被执行,然后再执行下一个更新。

1
2
3
4
db.movies.replaceOne(
    {"_id": 1}
    , {"_id": 1, "title": "mongo111"}
    );

  

更新运算符

"$set" 用来设置一个字段的值。如果这个字段不存在,则创建该字段。

1
2
db.movies.updateOne({"_id": 1},
    {"$set": {"a1.a11": "a11"}})

可以用 "$unset" 将这个键完全删除

1
2
db.movies.updateOne({"_id": 1},
    {"$unset": {"a1": ""}})

 

数组运算符

如果数组已存在,"$push" 就会将元素添加到数组末尾;如果数组不存在,则会创建一个新的数组。

1
2
db.movies.updateOne({"_id": 1},
    {"$push": {"b1": "b1"}})

"$push" 使用 "$each" 修饰符,在一次操作中添加多个值:

1
2
db.movies.updateOne({"_id": 1},
    {"$push": {"b1": {"$each": [562.776, 562.790, 559.123]}}})

可以使用 "$slice" 修饰符配合 $push 来防止数组的增长超过某个大小

1
2
3
4
5
6
7
8
9
db.movies.updateOne({"_id": 1},
    {
        "$push": {
            "b1": {
                "$each": ["111", "222"],
                "$slice": -1
            }
        }
    })

在截断之前可以将 "$sort" 修饰符应用于 "$push" 操作

1
2
3
4
5
6
7
8
9
10
11
12
db.movies.updateOne({"_id": 1},
    {
        "$push": {
            "b2": {
                "$each": [
                    {"name": "aaa", "rating": 6.6},
                    {"name": "bbb", "rating": 4.3}],
                "$slice": -2,
                "$sort": {"rating": 1}
            }
        }
    })

  

 

参考: MongoDB权威指南(第3版)第 3 章 创建、更新和删除文档

 

posted @   草木物语  阅读(133)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2019-01-29 request param 获取
2018-01-29 js 判断 是否在当前页面 当前页面是否在前端
点击右上角即可分享
微信分享提示