MongoDB系列之——增删改

本文介绍了MongoDB数据的基本增删改操作。新增可使用insert方法插入单个或批量文档;删除可全量删除或指定过滤条件删除,清空集合用drop更快;更新操作未详细展开,查询操作将在下节讲解。

本节讲介绍MongoDB数据的一些基本操作,主要包含增删改,查询操作在下一节详细讲解,本节主要包含如下操作:

  • 向集合中添加文档
  • 从集合中删除文档
  • 修改现有的文档

一、新增

  使用 insert 方法向目标集合中插入一个文档:

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

  该操作会给文档自动增加一个 "_id" 键,然后将其保存到MongoDB数据库中。使用 db.foo.find(),可以查看刚插入的记录如下:

> db.foo.find();
{ "_id" : ObjectId("5b820c6f7982250d8c3ca8dc"), "bar" : "baz" }

 

  insert 还可以进行批量插入,但是接受的参数必须为文档数组,例如:

db.foo.insert([
    {"_id" : 0}, 
    {"_id" : 1}, 
    {"_id" : 2}
])

 

 

 二、删除

  现在foo集合中有四个文档,如果要将他们全部删除,可以使用如下命令:

db.foo.remove()

  当然,我们也可以指定过滤条件。remove函数接受一个文档作为可选参数,给定这个参数之后,符合条件的文档才会被删除。

  例如,如果要删除mailing.list集合中所有 "opt-out" 为 true 的人:

db.mailing.list.remove({ "opt-out" : true })

   删除数据是永久性的,不能撤销。

  删除文档的速度通常很快,但是如果要清空整个集合,那么使用 drop 直接删除集合会更快。例如,我们先插入100万测试数据:

for(var i = 0; i < 100000; i++){
    db.tester.insert({"foo" : "bar" , "bar" : i , "z" : 10-i })
}

 

  首先我们使用remove函数进行删除,记录它消耗的时间

> var timeRemoves = function() { 
    var start = (new Date()).getTime(); 
    db.tester.remove({}); 
    var timeDiff = (new Date()).getTime() - start; 
    print("删除操作消耗了: " + timeDiff + " 毫秒"); 
}
> timeRemoves()
删除操作消耗了: 2 毫秒

 

   可以看到只消耗了2毫秒,这得益于4.0版本的优化,如果使用2.x版本的,可能需要几秒钟。但是如果使用 db.tester.drop() 代替 remove ,可以看到结果在1毫秒左右。

 

 三、更新

 

转载于:https://www.cnblogs.com/africancu/p/9535726.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值