《mongoDB》基本操作-创建/更新/删除文档
一:基本操作
- db; 当前选择的集合(等于数据库名)
-
-
> db demo
-
- use db_name; 选择你要操作的集合
-
-
> use demo switched to db demo
-
- show dbs; 列出全部集合
-
- 刚创建的集合不会出现,必须 插入一条数据之后, 才会有这个集合
-
> show dbs; admin 0.000GB config 0.000GB demo 0.000GB local 0.000GB
二:创建文档
- 注意
-
- 文档目前能接受的长度为 48 M
- 但是插入必须小于 16M
- 主要是为了防止不良设计模式的出现
- 可以使用 Object.bsonsize({JSON}) 检查插入文档的大小
- 插入一个文档
-
-
语法: db.db_name.insert({JSON});
-
> db.demo.insert({"name":"lihong","age":25}); WriteResult({ "nInserted" : 1 })
-
- 批量插入文档
-
-
语法:
db.db_name.insert( [{JSON}, {JSON}] ) -
> db.demo.insert([{"name":"zhangsan","age":26}, {"name":"lisi","age":26}]); BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 2, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] })
-
三:删除文档
- 删除全部集合文档
-
- 只清空集合数据,不删除集合
-
语法:
db.db_name.remove( <query>, { justOne: <boolean>, writeConcern: <document> } )
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。 -
> db.xxx.remove({}); WriteResult({ "nRemoved" : 1 })
- 彻底删除集合
-
-
语法:
db.db_name.drop(); -
> db.xxx.drop(); true
-
四:更新文档
- 注意
-
- 更新操作不可分割,先到达服务器的先执行,也就是说,在遇到并发情况下,数据总是最新的。
- 因为 ObjectId 的唯一性,在更新时候,推荐使用 ObjectId 进行更新。
- 更新
-
-
语法: 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 :可选,抛出异常的级别。
-
- 更新一条信息
-
-
db.db_name.update({"_id" : ObjectId("5c61050f0a485d689a5f3e1b")}, {"aa":"xx"});
-
- 更新一条信息,没有则新建这条信息
-
-
db.db_name.update({"name":"lihong"},{"name":"lihong02"}, true)
-
- 更新全部匹配的信息,没有新建
-
-
db.db_name.update({"name":"lihong"},{"name":"lihong02"}, true,true)
-
-