说明:Mongodb命令是区分大小写的,使用的命名规则是驼峰命名法。
对于database和collection无需主动创建,在插入数据时,如果database和collection不存在则会自动创建。
先用命令行导向D:\mongoDbin目录下:
1)help
2)show dbs,show collections/tables
3)use db
例如命令【use demodb】,创建demodb,不用担心demodb不会创建,当使用use demodb 命令创建第一个collection时会自动创建数据库demodb,
4)插入db.collectionName.insert({name:"jack",age:33})
5)查询
查询所有:db.Student.find();
查询一条:db.Student.findOne()
查询指定:db.Student.find({}); 例如:db.Student.find({color:"white"})
说明:find()的第二个参数限制返回的filed的个数,0代表不返回,1代表返回。"_id"键总是会被返回。
如果不带条件,只限制返回的filed个数的话,命令如下:db.Student.find({},{sex:0})。只需要第一个参数为{}空字典就可以。
6)查询条件
"$lt","$lte","$gt","$gte"分别对应<,<=,>,>=
$ne,不等于,$in,$not和$or
如下代码: db.Student.find({age:{$gt:33}})
查询age大于33的
db.Student.find({age:{$gte:33}})
db.Student.find({age:{$lt:33}})
db.Student.find({age:{$lte:33}})
db.Student.find({age:{$gt:23,$lt:43}})
db.Student.find({age:{$ne:33}}) 查询age不等于33
db.Student.find({color:{$all:["red","blue"]}})
--精确匹配,即被检索出来的文档,color值中的数组数据必须和查询条件完全匹配,即不能多,也不能少,顺序也必须保持一致。
db.Student.find({color:["red","blue","black"]})
--匹配数组中指定下标元素的值。数组的起始下标是0。注意color要加引号。
db.Student.find({"color.0":"white"})
7)排序
db.Student.find().sort({age:1})
db.Student.find().sort({age:1,sex:1})
--1代表升序,-1代表降序
8)分页
db.Student.find().sort({age:1}).limit(3).skip(3)
--limit代表取多少个document,skip代表跳过前多少个document。
9)获取数量
获取所有: db.Student.count();
db.Student.count({name:null})
--或者
db.Student.find({name:null}).count()
删除数据
删除所有:db.Student.remove({});
删除指定:db.Student.remove({name:null})
删除集合:db.Student.drop();
10)更新数据
命令【db.Student.update({name:"jack"},{age:55})】执行后
先查询name=jack的所有document,然后将name=jack的所有document都替换为{age:55},其它filed都没有了。
正确的更新方式应该为:
db.Student.update({name:"jack"},{$set:{age:55}})
2.增加field
--将name=lily的student增加一个filed height
db.Student.update({name:"lily"},{$inc:{height:175}})
3.upset-将数字field增加多少增量
--若存在则添加,否则更新,只能用于数字field,例如age更新前是50,更新了185,则变为235.
db.Student.update({name:"lily"},{$inc:{age:185}},true)
4.批量更新数据
4、特殊查询--null和exists
null可以匹配自身,而且可以匹配"不存在的"
--插入测试数据
db.Student.insert({name:null,sex:1,age:18})
db.Student.insert({sex:1,age:24})
db.Student.find({name:null}) --上面两条都能查到
db.Student.find({name:{$in:[null],$exists:true}}) ---只能查到第一条
5、数组数据查询
db.Student.insert({name:"wjh",sex:1,age:18,color:["red","blue","black"]})
db.Student.insert({name:"lpj",sex:1,age:22,color:["white","blue","black"]})
db.Student.find()