一、增加
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的记录可以用.