mongodb常用语句

连接远程数据库:
mongo 192.168.1.100:27017/db1  -u username  -p password

备份数据:
mongodump  -h 127.0.0.1:27017 -d db1 -c table1 -q {userId:8800387990018}   -o D:\bak

-h:mongodb服务器地址
-d:需要备份数据库
-c:需要备份的ollection(可选,不传默认为整个database)
-q:备份collection时的条件(与-c参数一起使用)
-o:备份的数据存放位置


还原数据:
mongorestore -h 127.0.0.1:27017 -d mydb --directoryperdb E:\bak

-h:mongodb服务器地址
-d:需要恢复到哪个数据库
--directoryperdb:需要恢复的数据所在位置


//查询userId=16并且firstName包含name1的所有数据,红色部分代表查询条件,蓝色部分代表要返回的字段 值为0表示不返回

db.tb_user.find({userId:16,firstName:/.*name1.*/},{firstName:1,lastName:1,userId:1,_id:0});

//$or用法

db.tb_user.find({userId:16,"$or":[{"firstName":/.*aaa.*/},{"lastName":/.*bbb.*/}],status:1},{firstName:1,lastName:1,userId:1})


//"$lt","$lte","$gt","$gte","$in","$nin"分别对应<,<=,>,>=,in,not in  用法:

//查询姓名不等于zhangsan的人

db.tb_user.find({"name":{"$ne":"zhangsan"}}) 

查询age >=10  <=20

db.tb_user.find({"age":{"$gte":10,"$lte":20}})
查询出生日期是1986-1-1之后的人
db.tb_user.find({"birthday":{"$gt":new Date("1986/01/01")}}) 

查询出age为18,20的数据
db.tb_user.find({age:{"$in":[18,20]}}) 

MongoDB update:

db.collection.update(criteria, objNew, upsert, multi )

criteria : update的查询条件,类似sql update查询内where后面的
objNew   : update的对象和一些更新的操作符(如$set,$inc...)等,也可以理解为sql update查询内set后面的
upsert   : 如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi    : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

//将所有id>3的记录的age修改为20
db.tb_user.find( {id:{$gt:3 }},{$set:{age:20}},false,true ); 



你可能感兴趣的:(mongodb常用语句)