MongoDB(三):创建、更新及删除文档
2012-11-05 12:26
239 查看
插入并保存文档
> db.foo.insert({"hello": "world"})如果要插入多个文档,使用批量插入会快一些。因为一次的批量插入只是单个的TCP请求,无需处理大量的消息头,这样能够减少插入时间。单个文档发送至数据库时,会有一个头部消息,告诉数据库对指定的集合做插入操作。用批量插入的话,数据库就不用多次处理每一个文档的这种头部信息。
删除文档
> db.users.remove()上述命令会删除users集合中所有的文档。remove函数可以接受一个查询文档作为可选参数,如:
> db.users.remove({"name": "Tom"})
删除文档的速度通常会很快,但是要清除整个集合,直接删除整个集合(然后重建索引),速度会快得多。
更新文档
原文档:{"_id": ObjectId("4b3a32sf23skskd", "name": "joe", "friends": 32, "eneimes": 2)}
目标文档:
{"_id": ObjectId("4b3a32sf23skskd", “username”: "joe", "relationships": {"friends": 32, "eneimes": 2}}
使用update来替换文档:
> var joe = db.users.findOne({"name": "joe"});
> joe.relationships = {"friends": 32, "eneimes": 2};
{
"friends": 32,
"eneimes": 2
}
> joe.username = joe.name;
"joe"
> delete joe.friends;
true
> delete joe.eneimes;
true
> delete name;
true
> db.users.update({"name": "joe"}, joe);
常见的错误:查询条件匹配了多个文档,然后更新的时候由于第二个参数的存在就产生重复的"_id"的值。数据库会报错,不做任何修改。为了避免这种情况,最好确保更新总是指定唯一文档,例如通过像"_id"这样的键来匹配。
对文档进行部分更新,可以使用原子的更新修改器。如"$set"修改器、"$inc"修改器等等。具体可查看官方文档。
瞬间完成
插入、删除和更新都是瞬间完成的,因为它们都不需要等待数据库响应。这并不是异步操作,类似UDP的不可靠特性,客户端将文档发送给服务器后就立刻干别的了。客户端永远都不会收到各种响应。优点:速度快,只受客户端发送的速度和网络速度的制约。
相关文章推荐
- MongoDb 创建、更新以及删除文档常用命令
- MongoDB创建更新和删除文档
- (4)详解MongoDB的创建、更新、删除文档
- MongoDB 创建、更新、删除 文档
- MongoDB 创建,更新,删除文档 上
- Mongodb 笔记02 创建、更新和删除文档
- MongoDB学习笔记2——创建、更新、查询、删除文档
- 学习MongoDB--(3-1):创建、删除及更新文档
- mongoDb 文档创建、更新、删除
- 03.Mongodb创建、更新和删除文档。
- MongoDB学习笔记-创建、更新、删除文档
- MongoDB(二)创建更新删除文档
- MongoDB笔记二之创建、更新及删除文档 推荐
- 【MongoDB学习笔记5】MongoDB中的创建、读取、更新、删除(CRUD)
- MongoDB 数据库、集合创建删除与文档插入
- MongoDB学习 (四):创建、读取、更新、删除(CRUD)快速入门
- MongoDB 的创建、查询、更新、删除
- mongoDB集合 文档创建修改删除以及查询命令总结
- 使用XmlDocument创建XML文档及增加删除更新节点
- [转载]MongoDB学习 (四):创建、读取、更新、删除(CRUD)快速入门