mongodb 常用查询语句

六月ゝ 毕业季﹏ 提交于 2020-03-15 19:08:01

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

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!