首页 > 数据库 >MongoDB :第五章:MongoDB 插入更新删除查询文档

MongoDB :第五章:MongoDB 插入更新删除查询文档

时间:2023-08-23 21:56:42浏览次数:47  
标签:title MongoDB db update 第五章 文档 col

MongoDB 插入文档

本章节中我们将向大家介绍如何将数据插入到MongoDB的集合中。

文档的数据结构和JSON基本一样。

所有存储在集合中的数据都是BSON格式。

BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。
插入文档

MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:

db.COLLECTION_NAME.insert(document)

实例

以下文档可以存储在 MongoDB 的 runoob 数据库 的 col 集合中:

>db.col.insert({title: 'MongoDB 教程',
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

以上实例中 col 是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。

查看已插入文档:

> db.col.find()
{ "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
>

我们也可以将数据定义为一个变量,如下所示:

> document=({title: 'MongoDB 教程',
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
});

执行后显示结果如下:

{
        "title" : "MongoDB 教程",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "菜鸟教程",
        "url" : "http://www.runoob.com",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}

执行插入操作:

> db.col.insert(document)
WriteResult({ "nInserted" : 1 })
>

插入文档你也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。

MongoDB 删除集合

MongoDB 更新文档

2 篇笔记 写笔记

   二少

  272***[email protected]

  参考地址

3.2 版本后还有以下几种语法可用于插入文档:
    db.collection.insertOne():向指定集合中插入一条文档数据
    db.collection.insertMany():向指定集合中插入多条文档数据

    #  插入单条数据
     
    > var document = db.collection.insertOne({"a": 3})
    > document
    {
            "acknowledged" : true,
            "insertedId" : ObjectId("571a218011a82a1d94c02333")
    }
     
    #  插入多条数据
    > var res = db.collection.insertMany([{"b": 3}, {'c': 4}])
    > res
    {
            "acknowledged" : true,
            "insertedIds" : [
                    ObjectId("571a22a911a82a1d94c02337"),
                    ObjectId("571a22a911a82a1d94c02338")
            ]
    }

二少

   二少

  272***[email protected]

  参考地址
2年前 (2017-07-12)

   Tffans

  897***[email protected]

一次插入多条数据

1、先创建数组

2、将数据放在数组中

3、一次 insert 到集合中

    var arr = [];
     
    for(var i=1 ; i<=20000 ; i++){
        arr.push({num:i});
    }
    db.numbers.insert(arr);

MongoDB 更新文档

MongoDB 使用 update() 和 save() 方法来更新集合中的文档。接下来让我们详细来看下两个函数的应用及其区别。
update() 方法

update() 方法用于更新已存在的文档。语法格式如下:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。

接着我们通过 update() 方法来更新标题(title):

>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })   # 输出信息
> db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "菜鸟教程",
        "url" : "http://www.runoob.com",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
>

可以看到标题(title)由原来的 “MongoDB 教程” 更新为了 “MongoDB”。

以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。

db.col.update({‘title’:‘MongoDB 教程’},{$set:{‘title’:‘MongoDB’}},{multi:true})

save() 方法

save() 方法通过传入的文档来替换已有文档。语法格式如下:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

参数说明:

document : 文档数据。
writeConcern :可选,抛出异常的级别。

实例

以下实例中我们替换了 _id 为 56064f89ade2f21f36b03136 的文档数据:

>db.col.save({
    "_id" : ObjectId("56064f89ade2f21f36b03136"),
    "title" : "MongoDB",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "Runoob",
    "url" : "http://www.runoob.com",
    "tags" : [
            "mongodb",
            "NoSQL"
    ],
    "likes" : 110
})

替换成功后,我们可以通过 find() 命令来查看替换后的数据

>db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "Runoob",
        "url" : "http://www.runoob.com",
        "tags" : [
                "mongodb",
                "NoSQL"
        ],
        "likes" : 110
}
>

更多实例

只更新第一条记录:

db.col.update( { “count” : { $gt : 1 } } , { $set : { “test2” : “OK”} } );

全部更新:

db.col.update( { “count” : { $gt : 3 } } , { $set : { “test2” : “OK”} },false,true );

只添加第一条:

db.col.update( { “count” : { $gt : 4 } } , { $set : { “test5” : “OK”} },true,false );

全部添加进去:

db.col.update( { “count” : { $gt : 5 } } , { $set : { “test5” : “OK”} },true,true );

全部更新:

db.col.update( { “count” : { $gt : 15 } } , { $inc : { “count” : 1} },false,true );

只更新第一条记录:

db.col.update( { “count” : { $gt : 10 } } , { $inc : { “count” : 1} },false,false );
MongoDB 删除文档

在前面的几个章节中我们已经学习了MongoDB中如何为集合添加数据和更新数据。在本章节中我们将继续学习MongoDB集合的删除。

MongoDB remove()函数是用来移除集合中的数据。

MongoDB数据更新可以使用update()函数。在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。
语法

remove() 方法的基本语法格式如下所示:

db.collection.remove(
   <query>,
   <justOne>
)

如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。

实例

以下文档我们执行两次插入操作:

>db.col.insert({title: 'MongoDB 教程',
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

使用 find() 函数查询数据:

> db.col.find()
{ "_id" : ObjectId("56066169ade2f21f36b03137"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
{ "_id" : ObjectId("5606616dade2f21f36b03138"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }

接下来我们移除 title 为 ‘MongoDB 教程’ 的文档:

>db.col.remove({'title':'MongoDB 教程'})
WriteResult({ "nRemoved" : 2 })           # 删除了两条数据
>db.col.find()
……                                        # 没有数据

如果你只想删除第一条找到的记录可以设置 justOne 为 1,如下所示:

db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

如果你想删除所有数据,可以使用以下方式(类似常规 SQL 的 truncate 命令):

>db.col.remove({})
>db.col.find()
>

MongoDB 更新文档

MongoDB 查询文档

2 篇笔记 写笔记

   三国电视台

  tre***[email protected]

remove() 方法已经过时了,现在官方推荐使用 deleteOne() 和 deleteMany() 方法。

如删除集合下全部文档:

db.inventory.deleteMany({})

删除 status 等于 A 的全部文档:

db.inventory.deleteMany({ status : "A" })

删除 status 等于 D 的一个文档:

db.inventory.deleteOne( { status: "D" } )

三国电视台

   三国电视台

  tre***[email protected]
2年前 (2017-09-22)

   sairre

  jsa***[email protected]

remove() 方法 并不会真正释放空间。

需要继续执行 db.repairDatabase() 来回收磁盘空间。

    > db.repairDatabase()
    或者
    > db.runCommand({ repairDatabase: 1 })

MongoDB 查询文档

MongoDB 查询文档使用 find() 方法。

find() 方法以非结构化的方式来显示所有文档。

 

 

 

 

更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120615724

 

标签:title,MongoDB,db,update,第五章,文档,col
From: https://www.cnblogs.com/wangchuanxinshi/p/17652851.html

相关文章

  • MongoDB :第六章:Java程序操作MongoDB
    MongoDBJava环境配置在Java程序中如果要使用MongoDB,你需要确保已经安装了Java环境及MongoDBJDBC驱动。本章节实例时候Mongo3.x以上版本。你可以参考本站的Java教程来安装Java程序。现在让我们来检测你是否安装了MongoDBJDBC驱动。首先你必须下载mongojar包,下......
  • 【线性代数】第五章 特征值和特征向量
    1.特征值和特征向量特征值和特征向量的定义:对于n阶矩阵A,如果存在一个数λ以及非零n维列向量α,使得Aα=λα成立则称λ是矩阵A的一个特征值。非零向量α是矩阵A属于特征值的一个特征向量。这个式子可以写成(λE-A)α=0,α≠0,所以特征向量α可以说成这个齐次方程的非零......
  • MongoDB :第四章:集合的创建与删除
    MongoDB创建集合本章节我们为大家介绍如何使用MongoDB来创建集合。MongoDB中使用createCollection()方法来创建集合。语法格式:db.createCollection(name,options)参数说明:name:要创建的集合名称options:可选参数,指定有关内存大小及索引的选项 options可以......
  • 制作产品手册文档之前可要记得设置这些权限哦!
    企业在制作产品手册文档的时候,除了要填写内容、完善格式等这些基础操作之外,通常还需要对产品手册文档设置相应的权限来保障数据的私密和安全。很多人以为权限管理就是阅读和编辑权限。但是其实远远不止如此,looklook今天就从产品手册文档的权限出发,来和大家聊聊这些常见的权限设置。......
  • 开源Word文字替换小工具更新 增加文档页眉和页脚替换功能
    ITGeeker技术奇客发布的开源Word文字替换小工具更新到v1.0.1.0版本啦,现已支持OfficeWord文档页眉和页脚的替换。同时ITGeeker技术奇客修复了v1.0.0.0版本因替换数字引起的in‘requiresstringasleftoperand,notint错误。开源Word文字替换小工具官方介绍页面:https://www.......
  • 蛋糕店销售系统的设计与实现-计算机毕业设计源码+LW文档
    摘要随着信息技术的发展,基于web模式的购物系统逐渐普及,网上购物是一种新型的商务模式,其工作流程和经营模式受到了欢迎。电子商务可以适应现代化快节奏的生活方式,满足各类人群足不出户的在线购物,利用商城使得买卖双方完成线上交易,提高了购买效率。因此,开发一个适合商品在线选购的......
  • 课堂管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘要随着互联网技术的推进,我国高等教育逐渐实现信息化。许多精品课堂管理系统的开发建设大大提高了教职工的教学效率,也为培养更多的高素质人才提供了途径。但是课堂管理系统的发展也存在交互性不强、资源更新缓慢、教学形式单一等问题。因此,笔者设想开发一个交互型的课堂管理系统......
  • 基于ssm的动漫推荐平台系统设计-计算机毕业设计源码+LW文档
    摘要随着信息技术的发展,基于web模式的管理系统逐渐普及,网上查找信息是目前广受欢迎的模式。基于ssm的动漫推荐平台系统可以适应现代化快节奏的生活方式,满足各类人群足不出户的在线查找动漫,利用基于ssm的动漫推荐平台系统可以获取动漫的信息,并可以和其他用户进行交流,提高了动漫的......
  • 基于Springboot的个人网站的设计与实现-计算机毕业设计源码+LW文档
    一、设计(论文)选题的依据1.研究背景与意义现在越来越多的人关注网站的自动化设计与开发,什么是个人网站呢?它的出现和运营究竟承载这怎样的信息?这并不是每个人都清楚的很多人无法准确的理解个人网站的优势和作用,我对网站的认识还处于相当低的程度中所以在正文开始前我想先阐述自己对......
  • 做好这些前期准备,搭建产品手册文档超简单!
    looklook最近后台收到不少私信,有很多小伙伴都想了解一下产品手册文档相关的资料。looklook决定就开一个系列的文章,从搭建产品手册文档的前期准备出发,一步步地教大家成功搭建出一个完美的搭建产品手册文档。搭建产品手册文档的前期准备1.明确目标和定位:确定搭建产品手册文档的目的和......