mongodb入门--增删改查

来源:互联网 发布:软件测试行业现状 编辑:程序博客网 时间:2024/05/22 17:41

一、增加

1、创建表

db.createCollection("cntest") 

2、插入记录

db.cntest.insert({id:1,name:"chennan"}) 

3、创建同时插入记录

db.cntest2.insert({id:2,name:"chennan2"})

4、批量添加记录

for(var i = 1; i <= 1000; i++){

         db.cntest3.insert({id:i,name:”cn”+i})

}


二、删除

db.cntest3.remove() 删除所有记录

db.cntest3.remove({id:1}) 条件删除


三、修改

1、指令格式:

db.cntest3.update(a,b,c,d)

a 查询条件

b 改变哪些字段

c  0或1 查询不到是否新增

d  0或1 查询到多条,是否都修改

2、修改-新增

db.cntest3.update({id:1},{name:"cn111"})

根据id找到1记录

把原记录所有字段删除,新增{name:"cn111"}字段

如果该1记录不存在,则新增{name:"cn111"}记录

如果该1记录有多条,只更修改第一条

3、修改特定字段-不新增

db.cntest3.update({id:1},{$set:{name:"cn123"}})

根据id找到1记录如果存在则修改name字段

如果不存在1记录则不修改

4、修改特定字段-新增

db.cntest3.update({id:12},{$set:{name:"cn12"}},1,1)

根据id找到1记录如果存在则修改name字段

如果不存在1记录则新增

5、字段值改变

db.cntest3.update({id:1},{$inc:{age:3}},0,1)

把查询到的所有记录的age值加3

6、删除字段

db.cntest3.update({id:1},{$unset:{age:1}},0,1)

把查询到的所有记录的age字段删除


四、查询

1、查看记录条数find.count

db.cntest3.find().count()

db.cntest3.find().limit(2).count(true)

查询limit后的数量,要加true

 

2、查询所有记录find

db.cntest.find() 

 

3、查询第一条findOne

db.cntest3.findOne() 

 

4、查询id为1的name字段

db.cntest3.find({id:1},{name:1})

 

5、查询所有记录的name字段

db.cntest3.find(null,{name:1})

 

6、大于、小于、等于、不等于

查询id>5的记录

db.cntest3.find({id:{$gt:5}})

 

查询id >=5的记录

db.cntest3.find({id:{$gte:5}})

 

查询id<5的记录

db.cntest3.find({id:{$lt:5}})

 

查询id<=5的记录

db.cntest3.find({id:{$lte:5}})

 

查询id!=5的记录

db.cntest3.find({id:{$ne:5}})

 

查询id=5的记录

db.cntest3.find({id:5})

 

查询id>5且id<10的记录

db.cntest3.find({id:{$gt:5,$lt:10}})

 

7、分页查询

db.cntest3.find().skip(0).limit(3);

从第0条开始查3条

 

8、排序

db.cntest3.find().sort({id:-1}) 降序

db.cntest3.find().sort({id:1}) 升序

 

9、or

db.cntest4.find({$or:[{name:"cn0"},{name:"cn1"}]})

多条件查询

 

10、根据是否含有某一字段查询

db.cntest3.find({age:{$exists:1}})

含有age字段的记录

 

11、模糊查询

db. cntest3.find({name:{$regex:/san/}})

查询name包含san的记录

db. cntest3.find({name:{$regex:/san$/}})

查询name以san结尾的记录

db. cntest3.find({name:{$regex:/^san/}})

查询name以san开头的记录

 

12、in

db. cntest3.find({age:{$in:[23, 35]}})

 

13、all 用于查询数组字段是否同时包含某些值

db. cntest3.find({score:{$all:[60,99]}})

score字段同时包含60和99的记录

 

14、null

db. cntest3.find({score:null})

查询score字段为null或没有score字段的记录

db. cntest3.find({score:{$in:[null],$exists:1}})

查询score字段为空且有score字段的记录

 

15、内嵌文档

db. cntest3.find({"account.money":100})

查询account下的money为100的记录可以用.