insert() 方法

要插入数据到 MongoDB 集合,需要使用 MongoDB 的  insert() 或 save() 方法。

插入文档:db.COLLECTION_NAME.insert(document)

 > show collections
col_1
col_2
runoob
system.indexes
> db.mycol.insert({"title":"MongoDb overview"})#如果之前该集合不存在,则重新创建集合
WriteResult({ "nInserted" : 1 })#成功插入文档
> show collections
col_1
col_2
mycol
runoob
system.indexes
> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "title" : "MongoDb overview" }

MongoDB的 update() 和 save() 方法用于更新文档的集合。 update()方法更新现有的文档值,而替换现有的文档通过的文件中 save() 方法。

MongoDB Update() 方法

update()方法更新现有文档值。

更新文档:db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)

> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "title" : "MongoDb overview" }
{ "_id" : ObjectId("57906dd3b2dade9538e2ac1f"), "title" : "alili MongoDb" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "mongodb" }
> db.mycol.update({"name":"no name"})#做了个测试
2016-07-21T14:39:29.359+0800 E QUERY Error: need an object
at Error (<anonymous>)
at DBCollection._parseUpdate (src/mongo/shell/collection.js:400:21)
at DBCollection.update (src/mongo/shell/collection.js:432:23)
at (shell):1:10 at src/mongo/shell/collection.js:400
> db.mycol.update({"title":"mongodb"},{$set:{"title":"change mongodb"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "title" : "MongoDb overview" }
{ "_id" : ObjectId("57906dd3b2dade9538e2ac1f"), "title" : "alili MongoDb" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "change mongodb" }
> db.mycol.update({"title" : "change mongodb"},{$set:{"name":"no name"}})#然后又做了一次改变,是在后面追加的
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "title" : "MongoDb overview" }
{ "_id" : ObjectId("57906dd3b2dade9538e2ac1f"), "title" : "alili MongoDb" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "change mongodb", "name" : "no name" }

MongoDB Save() 方法

save() 方法替换现有的文档和通过新的文档 save() 方法

语法

MongoDB 的 save() 方法的基本语法如下:

替换现有文档:db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})

> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "title" : "MongoDb overview" }
{ "_id" : ObjectId("57906dd3b2dade9538e2ac1f"), "title" : "alili MongoDb" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "change mongodb", "name" : "no name" }
> db.mycol.save({"_id" : ObjectId("57906a93b2dade9538e2ac1e"),"name":"mongodb","by":"save"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "name" : "mongodb", "by" : "save" }
{ "_id" : ObjectId("57906dd3b2dade9538e2ac1f"), "title" : "alili MongoDb" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "change mongodb", "name" : "no name" }
>

MongoDB的 remove() 方法用于从集合中删除文档。remove() 方法接受两个参数。第一个是删除criteria ,第二是justOne标志:

  1. deletion criteria :(可选)删除标准,根据文件将被删除。

  2. justOne : (可选)如果设置为true或1,然后只删除一个文件。

删除文档:db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)

> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "name" : "mongodb", "by" : "save" }
{ "_id" : ObjectId("57906dd3b2dade9538e2ac1f"), "title" : "alili MongoDb" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "change mongodb", "name" : "no name" }
> db.mycol.remove({"title":"alili MongoDb"})
WriteResult({ "nRemoved" : 1 })
> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "name" : "mongodb", "by" : "save" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "change mongodb", "name" : "no name" }
> db.mycol.insert({"name":""})
WriteResult({ "nInserted" : 1 })
> db.mycol.insert({"name":""})
WriteResult({ "nInserted" : 1 })
> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "name" : "mongodb", "by" : "save" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "change mongodb", "name" : "no name" }
{ "_id" : ObjectId("579077d9b2dade9538e2ac21"), "name" : "" }
{ "_id" : ObjectId("579077dbb2dade9538e2ac22"), "name" : "" }
> db.mycol.remove({"name":""})#相同的都会删去的
WriteResult({ "nRemoved" : 2 })
> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "name" : "mongodb", "by" : "save" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "change mongodb", "name" : "no name" }
>

只删除一个:db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "name" : "mongodb", "by" : "save" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "change mongodb", "name" : "no name" }
{ "_id" : ObjectId("5790789fb2dade9538e2ac23"), "age" : "" }
{ "_id" : ObjectId("579078a1b2dade9538e2ac24"), "age" : "" }
{ "_id" : ObjectId("579078a4b2dade9538e2ac25"), "age" : "" }
> db.mycol.remove({"age":""},1)
WriteResult({ "nRemoved" : 1 })
> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "name" : "mongodb", "by" : "save" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "change mongodb", "name" : "no name" }
{ "_id" : ObjectId("579078a1b2dade9538e2ac24"), "age" : "" }
{ "_id" : ObjectId("579078a4b2dade9538e2ac25"), "age" : "" }
>

删除集合的所有的内容:db.COLLECTION_NAME.remove({})

> db.mycol.find()
{ "_id" : ObjectId("57906a93b2dade9538e2ac1e"), "name" : "mongodb", "by" : "save" }
{ "_id" : ObjectId("57906ddfb2dade9538e2ac20"), "title" : "change mongodb", "name" : "no name" }
{ "_id" : ObjectId("579078a1b2dade9538e2ac24"), "age" : "" }
{ "_id" : ObjectId("579078a4b2dade9538e2ac25"), "age" : "" }
> db.mycol.remove()#抛出了异常,去搜了下
2016-07-21T15:33:45.122+0800 E QUERY Error: remove needs a query
at Error (<anonymous>)
at DBCollection._parseRemove (src/mongo/shell/collection.js:305:32)
at DBCollection.remove (src/mongo/shell/collection.js:328:23)
at (shell):1:10 at src/mongo/shell/collection.js:305
> db.mycol.remove({})
WriteResult({ "nRemoved" : 4 })
> db.mycol.find()
>

Mongodb(3)插入文档,更新文档,删除文档的更多相关文章

  1. jQuery文档处理(增加与删除文档)

    1.追加内容

  2. mybatis批量插入、批量更新和批量删除

    转载 https://www.jianshu.com/p/041bec8ae6d3

  3. Mongodb 笔记02 创建、更新和删除文档

    创建.更新和删除文档          1. 插入并保存: 1). 单条插入,insert : db.foo.insert({"bar":"baz"}) 2). ...

  4. ElasticSearch查询 第二篇:文档更新

    <ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...

  5. MongoDB改动、删除文档的域属性实例

    MongoDB改动.删除文档的域属性实例 在站点的开发中,可能最初的设计不合理.或者后期业务的变更,会造成文档结构会有些无用的属性.须要去删除或改动.因为MongoDB 是无 Schema 的,不像关 ...

  6. MongoDB快速入门(八)- 删除文档

    删除文档 MongoDB 的 remove()方法用于从集合中删除文档.remove()方法接受两个参数.一个是标准缺失,第二是justOne标志 deletion criteria : 根据文件(可 ...

  7. 【Mongodb教程 第九课 】MongoDB 删除文档

    remove() 方法 MongoDB的 remove() 方法用于从集合中删除文档.remove() 方法接受两个参数.第一个是删除criteria ,第二是justOne标志: deletion ...

  8. MongoDB 教程(七):插入文档、更新文档、删除文档

    MongoDB 插入文档 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式 —— BSON是一种类json的二进制形式的存储格式,简称Binary JSON. MongoDB ...

  9. MongoDB学习笔记二:创建、更新及删除文档

    插入并保存文档 对目标集使用insert方法插入一个文档: > db.foo.insert({"bar" : "baz"}) 这个操作会给文档增加一个&q ...

随机推荐

  1. MySQL数据库高并发优化配置

    在Apache, PHP, mysql的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分.对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接 影响到论坛的速度和承载量! ...

  2. Java static block static constructor , static field

    http://stackoverflow.com/questions/7121213/singleton-instantiation http://docs.oracle.com/javase/spe ...

  3. distinct和group by

    distinct:同时查询两个字段,另外一个字段(不是distinct的那个字段,下例是tagid)需要多个值,如下                 group by:同时查询两个字段,另外一个字段( ...

  4. mysql提权笔记

    最近小菜遇到mysql提权,总是会搞错,就记记笔记吧!以后方便用 先说手工吧! mysql<5.0,导出路径随意:5.0<=mysql<5.1,则需要导出至目标服务器的系统目录(如: ...

  5. unity, ugui input field

    ugui Input Field,获取输入的字符串. 错误方法: string content=inputField.FindChild("Text").text; 这样得到的是输 ...

  6. linux下为php安装APC扩展

    wget http://pecl.php.net/get/APC-3.1.9.tgztar xzvf APC-3.1.9.tgzcd APC-3.1.9/usr/local/php/bin/phpiz ...

  7. zookeeper源码学习一——zookeeper启动

    最近正在研究zookeeper,一些心得记录一下,如有错误,还请大神指正. zookeeper下载地址:http://zookeeper.apache.org/releases.html,百度一下就能 ...

  8. Android中使用WebView, WebChromeClient和WebViewClient加载网页 (能够执行js)

    Android中使用WebView, WebChromeClient和WebViewClient加载网页   在android应用中,有时要加载一个网页,如果能配上一个进度条就更好了,而android ...

  9. Win7系统上配置使用Intellij Idea 13的SVN插件

    Win7系统上配置使用Intellij Idea 13的SVN插件 http://blog.csdn.net/jeepxiaozi/article/details/39856081

  10. 关于Schema设计规范及SQL使用建议

    1.所有的InnoDB表都设计一个无业务用途的自增列做主键,对于绝大多数场景都是如此,真正纯只读用InnoDB表的并不多,真如此的话还不如用TokuDB来得划算: 2.字段长度满足需求前提下,尽可能选 ...