mongodb 常用查询语句
写这个东西仅仅是为了便于记忆查找而已,记录下常用的一些语句,也免得以后找来找去找不到。
一、第一部分,常用查询语句介绍
首先cd到下载下来的mongodb存放路径的bin目录下,执行mongo进入Mongodb环境;
cd ~/mongodb/bin
mongodb/bin mongo
1.insert 插入记录
db.person.insert({name:"ken",age:10})
1.update 更新记录
db.person.update({name:"ken"},{age:20})//更新name为ken的age为20,第一个对象参数即为查询条件,修改name为ken的项目的age为20.
db.person.update({"name":"ken"},{"age":20},true) //在后面多了一个true,表示upsert操作,即如果查询不到,则添加
db.person.update({"name":"ken"},{"age":20},true,true)//又多了一个true,表示批量更新,默认情况下是只更新查询到的第一条数据而已
//局部更新
$inc 和 $set
db.person.update({"name":"ken"},{$inc:{"age":10}})//如果原来的age为20,则更新后为30
db.person.update({"name":"ken"},{$set:{"age":30}})//顾名思义
3.find 查找
db.person.find() //find all
db.person.find({name:"ken"})
//>, >=, <, <=, !=, = 分别对应"$gt", "$gte", "$lt", "$lte", "$ne","null"
db.person.find({"age":{$gt:25}})
//And,OR,In,NotIn分别对应"null","$or", "$in","$nin"
db.person.find({"name":'ken',"age":20})
db.person.find({$or:[{"age":10},{"age":15}]}})
db.person.find({"age":{$nin:[15,20]}})
db.person.find({},{"name":1,"_id":0}) //只查找name字段内容,且_id内容不展示(默认连_id都会查询出来)
//正则表达式
db.person.find({"name":/ken/})
//强大的$where
db.person.find({$where:function(){return this.name=="ken"}})
4.remove 删除记录
db.person.remove({}) //remove all
db.person.remove({name:"ken"})
5.count 计数
db.person.count()
db.person.count({"age":20})
6.distinct(指定了谁,谁就不能重复获取)
例如如下数据:
{name:'ken',age:10},{name:'kim',age:15},{name:'kon',age:10}
db.person.distinct("age")
返回:[10,15]
7.sort 排序
db.person.find().sort({age:1})//查找person集合中的数据,并按照年龄来排序
8.skip(跳过)
db.person.find().skip(3).limit(3).count(true);//如果count()中不加true或飞空值的话,count出来的值仍然是整个集合的数量。现在得到的是跳过了前3条记录并限制了只拿3条的记录。
8.$size 数量限制
db.person.find({favo:{$size:3}})//表示的是字段favo的值的数量为3个,如favo:[1,2,3]
9.存储过程
db.system.js.save({_id:'add',value:function(x,y){return x+y;}});
db.system.js.find();
db.eval('add()');
db.system.js.remove('add');
db.system.js.insert({_id:'getCount',value:function(){return db.person.find().count()}});
二、第二部分,非查询语句介绍
1.debug模式下启动mongodb:
mongod --dbpath [a folder for the database]
2.配置文件方式启动,例如有配置文件为:~/aa/mongodb.cnf
配置文件内容为:--dbpath=~/mydb
动时加上“-f”参数,并指向配置文件即可,如下面的代码所示:
./mongod -f ~/aa/mongodb.cnf
3.Daemon方式,如果希望将mongodb作为后台服务启动程序,我们就可以这样启动:
mongod --fork --logpath [p] --logappend –dbpath [p]
参数中,需要制定日志路径,否则是无法作为后台服务程序启动的。
4.创建或切换数据库操作,使用use
use test
use admin
use blog && db.posts.find() //意思是切换到blog数据库,然后查找posts集合(表)的所有数据
要查询有哪些数据库:show dbs
要查询数据库中有哪些表/集合: show collections
在mongoose中,创建Model的语句:var Post = mongoose.model('Post',PostSchema);
通过这句代码得到的集合名称为全小写“posts";
5.启动Mongodb,并制定监听的端口:
mongod --port 12345
6.若要关闭一个不是运行在后台服务程序的数据库,我们只需要简单的 ctrl+c 即可。
7.切换到admin数据库,并关掉这个数据库:
use admin
db.shutdownServer()
8.强制关闭数据库
db.adminCommand({shutdown: 1, force: true})
9.设置关闭数据库可控时间范围
db.adminCommand({shutdown: 1, timeoutSecs: 5})
或者也可以在shundownServer中传递参数timeoutSecs:
db.shutdownServer({timeoutSecs: 5})
三.ubuntu下安装mongodb
安装:
1.sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
2.echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
3.sudo apt-get update
4.sudo apt-get install -y mongodb-org
启动:sudo service mongod start
停止:sudo service mongod stop
重启:sudo service mongod restart
让Nodejs程序在后台运行,可以安装forever插件。npm install forever -g安装成功后:forever start index.jsforever stop index.jsforever restart index.js查看正在运行的程序:forever list记录输出日志和错误:forever start -l forever.log -o out.log -e err.log your_app.js
来源:https://www.cnblogs.com/moyiqing/p/mongodb.html