mongodb添加创建修改时间_MongoDB(三):创建、更新及删除文档

插入并保存文档

> 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的不可靠特性,客户端将文档发送给服务器后就立刻干别的了。客户端永远都不会收到各种响应。

优点:速度快,只受客户端发送的速度和网络速度的制约。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值