向 集合 添加新文档

从 集合 里删除文档

更新 现有文档

1. 插入并保存文档

> db.foo.insert({"bar":"baz"})

这个操作会给文档增加一个"_id"键 (如果 原来没有这个键的话),然后保存到MongoDB中

> db.foo.find()
{ "_id" : ObjectId("4fdc779a89834bfb0bd267a3"), "bar" : "baz" }

文档不能超过 4 MB , 可以 用 Object.bsonsize( 文档 ) 查看文档转换为 BSON 的大小 (以 字节 为 单位)

> post = { "title":"My Blog post","content":"Here's my blog post.","date":
... new Date()}
{
        "title" : "My Blog post",
        "content" : "Here's my blog post.",
        "date" : ISODate("2012-06-16T12:19:25.163Z")
}
> Object.bsonsize(post)
77

2. 删除文档

db.foo.remove() 会删除foo集合中所有的文档,当不会删除集合本身,原来的索引也会保留。

> db.foo.findOne()
{ "_id" : ObjectId("4fdc779a89834bfb0bd267a3"), "bar" : "baz" }
> show collections
foo
system.indexes
> db.foo.remove()
> show collections
foo
system.indexes
> db.foo.find()
>

remove() 函数可以接受 一个查询文档 作为可选 参数, 这样只有符合条件的参数 才被删除。

> post2 = {"title":"My Blog post2","content":"Here's my blog post2.","date":
... new Date()}
{
        "title" : "My Blog post2",
        "content" : "Here's my blog post2.",
        "date" : ISODate("2012-06-16T12:41:34.429Z")
}
> db.foo.insert(post2)
> db.foo.find()
{ "_id" : ObjectId("4fdc7e1889834bfb0bd267a4"), "title" : "My Blog post", "conte
nt" : "Here's my blog post.", "date" : ISODate("2012-06-16T12:19:25.163Z") }
{ "_id" : ObjectId("4fdc7f2689834bfb0bd267a5"), "title" : "My Blog post2", "cont
ent" : "Here's my blog post2.", "date" : ISODate("2012-06-16T12:41:34.429Z") }
> db.foo.remove({"title":"My Blog post2"})
> db.foo.find()
{ "_id" : ObjectId("4fdc7e1889834bfb0bd267a4"), "title" : "My Blog post", "conte
nt" : "Here's my blog post.", "date" : ISODate("2012-06-16T12:19:25.163Z") }
>

remove 删除数据是永久性的,不能撤销,也不能恢复。

另一个 删除命令 db.runCommand({"drop":"foo"}) 。

3. 更新

最简单的方法 用一个新文档 替换 原文档。 这种 适用于 结构变化较大的时候。

> user = { "name" :"joe",
... "friends":32,
... "enemies":2
... }
{ "name" : "joe", "friends" : 32, "enemies" : 2 }
> db.user.insert(user)
> db.user.find()
{ "_id" : ObjectId("4fdc893d89834bfb0bd267a6"), "name" : "joe", "friends" : 32,
"enemies" : 2 }

例如:

{

"_id" :  ObjectId("4fdc893d89834bfb0bd267a6"),

"name" :  "joe" ,

"friends" : 32 ,

"enemies" : 2

}

改变为

{

"_id" :  ObjectId("4fdc893d89834bfb0bd267a6"),

"username" :  "joe" ,

"relationships" :

{

"friends" : 32 ,

"enemies" : 2

}

}

可以用update 来替换文档:

> var joe = db.user.findOne({"name":"joe"})
> joe.relationships = { "friends":joe.friends , "enemies" : joe.enemies};
{ "friends" : 32, "enemies" : 2 }
> joe.username = joe.name
joe
> delete joe.name
true
> delete joe.friends
true
> delete joe.enemies
true
> db.user.find()
{ "_id" : ObjectId("4fdc893d89834bfb0bd267a6"), "name" : "joe", "friends" : 32,
"enemies" : 2 }
> db.user.update({"name":"joe"},joe);
> db.user.find()
{ "_id" : ObjectId("4fdc893d89834bfb0bd267a6"), "relationships" : { "friends" :
32, "enemies" : 2 }, "username" : "joe" }
>

转载于:https://www.cnblogs.com/anan/archive/2012/06/16/2552088.html

MongoDB 插入、更新、删除相关推荐

  1. c 更新mysql数据_MySQL插入更新删除数据

    数据插入 插入完整的行 INSERT INTO customers VALUES(NULL, 'Pep E. LaPew', '100 Main Street', 'Los Angeles', 'CA ...

  2. mysql更新记录删除_mysql 插入-更新-删除

    a_liujin:main thread(UI thread),worker thread和asyntask (http://www.2cto.com/kf/201203/122729.html)|@ ...

  3. asp vb 插入,更新,删除数据库操作。

    记笔记. 离开学校,东西都还给老师了,哎. Select Case str  Case "insert":    sql="select * from ["&a ...

  4. mongodb java 更新数据_MongoDB JAVA API更新数据示例

    [java获得数据库信息常用API(DatabaseMetaData)示例] /** * MongoDBTest * MongoDB更新数据使用示例 */ package com.labci.mong ...

  5. python操作sqlserver如何判断删除的数据不存在_Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法...

    本文实例讲述了Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法.分享给大家供大家参考,具体如下: 前言: 想把QQ日志爬虫(Python)爬下来的日志保存到 MongoD ...

  6. mysql插入第一_mySQL教程 第5章 插入 更新与删除数据

    第5章 插入 更新与删除数据 使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 ...

  7. 判断触发器正在处理的是插入,删除还是更新触发

    平常时写触发器(TRIGGER),一般会分别写插入(INSERT),删除(DELETE)和更新(UPDATE)单独的触发器. 但是有时候,可以视看处进逻辑程度,可以把三者写成一个触发器,只是在其中稍作 ...

  8. mySQL教程 第5章 插入 更新与删除数据

    第5章 插入 更新与删除数据 使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 ...

  9. arcengine,深入理解游标Cursors,实现数据的快速查找,插入,删除,更新

    风过无痕 原文  arcengine,深入理解游标Cursors,实现数据的快速查找,插入,删除,更新 深入理解游标Cursors,实现数据的快速查找,插入,删除,更新 1.查找数据Search Cu ...

  10. JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...

    主要内容:  JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十 ...

最新文章

  1. opencv 斑马线,条纹检测
  2. SQL Server中常用的SQL语句
  3. 《JavaScript凌厉开发 Ext详解与实践》3月5日开始上架销售
  4. java命令依赖第三方jar原理_java命令执行带jar包依赖的文件执行不了
  5. python matlab大数据,Python第八课:Python数据分析基础
  6. java php python 高并发_关于php如何调用Python快速发送高并发邮件的示例代码
  7. ASP.NETCore编程实现基本认证
  8. 64位Ubuntu提示(...adb": error=2, 没有那个文件或目录)
  9. Java 习题(面向对象)
  10. c语言生成迷宫算法,[原创]递归随机迷宫生成算法详解
  11. 辐流式重力浓缩池计算_注册考试重点!平流式、竖流式、辐流式、斜板式4大沉淀池构型...
  12. 「深度」5G,真的有必要在2020年占领我们吗?
  13. pycharm添加python注释头_Pycharm自动添加头注释
  14. arm和thumb指令模式
  15. Gym101237C The Palindrome Extraction Manacher、SAM、倍增
  16. live2d内嵌html,live2d web端加载moc3模型
  17. 第一章 HTML基础
  18. 使用激光可调湿蚀刻曲面实现无间隙微透镜阵列的通用
  19. python无向加权图_NetworkX:无向加权图的近似/不精确子图同构
  20. 仿爱奇艺加载dialog

热门文章

  1. ondestroy什么时候调用_JavaScript基础——你真的清楚JavaScript是什么吗?
  2. Qt_共享内存(QSharedMemory)未完成
  3. hexo需要先编辑好html文件吗,教你定制Hexo的landscape打造自己的主题_html/css_WEB-ITnose...
  4. php 参数 问号_php获取不到url问号之后的参数
  5. 【牛客网】:数据结构——时间复杂度,算法复杂度
  6. 【车牌识别】+【模板匹配】基于智能交通的车牌识别系统
  7. 二维卷积神经网络的结构理解
  8. 循环神经网络(RNN)Recurrent Neural Networks
  9. 能取代top命令的htop
  10. Linux下查看CPU个数