首页 > 代码库 > 4. mongodb插入,修改,删除操作

4. mongodb插入,修改,删除操作

  • mongodb插入操作

    语法: db.collection.save(collections); OR  db.collection.insert(collections);

     插入有上面两种方式。

       1. 借用对象来插入

>item={id:1,name:"hello"}>db.lottu.insert(item)

       2. 循环插入数据;一下子插入5条记录这种很不错吧

>for(i=1;i<=5;i++)db.lottu.insert({id:i,name:"kk"})

       3. 查看数据

   

 

  • mongodb修改操作

语法: db.collection.update(c1,$set,multi,upsert)

 1. 更新一条记录
     更新id=2的记录name为lottu
     >update lottu set name = ‘lottu‘ where id=2

  

   接下来我调皮了;想把id=1的记录那么也改为lottu

  

   奇怪的是:为什么只更新一条记录。
2. 更新多条记录
   这里我们来找解决方案。在mongodb更新多条需要添加multi(多)这个参数为true
  >db.lottu.update({id:1},{$set:{name:"li0924"},{multi:true}})

 

  更新成功。看来我没有骗你
 总结:不加multi参数;默认是只更新一条。添加{multi:true}才可以更新多条
3. 更新不存在的记录。
   在oracle中更新不存在的记录;记录不会改变。在mongodb呢?
   更新id=10的记录

 

这个当然在mongodb也是没有改变的。没有改变是我没添加upsert参数;现在我添加下

 

这个好像没有记录;可以添加。这个有点类似于merge into语句。但是概念不一样。
总结:{upsert:true},这条记录没有则添加。

 

  • mongodb删除操作

     语法:db.collecion.remove(c1)
          这里remove相当于sql中delete语句
          例如删除id为10;id为5的记录  
          >delete from lottu where id = 10;
          >delete from lottu where id = 5;

      

 这个没什么好解释的。
>delete from lottu呢?删除所有记录呢
是不是就是db.lottu.remove()

结果是:db.lottu.remove({})
我们知道delete可以删除记录;但是不会删除表。这个当然在mongodb也是一样
只有对drop table这个表就会删除对象。
而mongodb中的drop呢?

4. mongodb插入,修改,删除操作