数据库

mongo-linux

2021-05-27  本文已影响0人  jinjin1009

调用mongo的linux命令:
有密码
./mongo ...:port/database -u user -p'password'

mongodb://user:password@...:port/database
无密码
./mongo ...:port/database

怎么导出mongo中的数据?
首先本地已经安装好mongo:brew install mongodb/brew/mongodb-community
cd usr/local/bin 目录下,该目录下有mongoexport 命令的文件
然后执行命令,
./mongoexport --host hostname --port 8000 -u 'user' -p 'password' -d 'database' -c collection -q '{"status":"enabled"}' -f mainTitleWord,sonTitleWords -o qiutong.json --type json
u 代表用户名,p代表密码,d代表database数据库,c代表数据表,q指的是过滤条件,-f指的是输出的字段名,o代表输出的文件名,type输出的格式默认为json
输出的文件默认放在bin目录下
例如:
./mongoexport --host hostname--port 8000 -u 'user' -p 'password' -d 'database' -c data_doc -q '{"Id":100338}' -f dataUrl -o jinjin.json --type json

1、展示所有的数据库
show dbs;

2、使用monitor数据库,其中monitor为一个数据库,如果没有这个数据库,就会创建monitor这个数据库
use monitor;

3、展示当前采用的是哪个数据库
db;

4、删除数据库,必须首先进入数据库后再删除,这样删除的是monitor这个数据库
db.dropDatabase()

5、展示所有的集合
show collections;
或者
show tables;

6、创建集合
db.createCollection(name);

7、删除集合
db.collection_name.drop();

8、集合中的数量
db.getCollection('search').count();

9、查询集合下的某条数据
db.getCollection('search').find({"_id" : ObjectId("604598bf123dcf94c75e01b2")})

9、查询集合下的多条数据
db.getCollection('search').find({"_id" :{"$in":["123","345","234"]}})

10、向某个集合插入一条数据
db.getCollection('search').insert({x:10})
或者
db.collection_name.insert({x:10})

11、查询集合中的数据
db.getCollection('search').find()
result:
{ "_id" : ObjectId("5f069bdb4e02f8baf90f1184"), "x" : 10 }

12、增加pretty方法,能够使得查询出来的数据比较美观展示,不至于太过紧凑
db.getCollection('search').find().pretty()

13、更改集合中的某条数据内容,将title进行变更,只是针对第一个文档进行修改
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})

14、更改集合中的数据内容,针对的是多个文档,multi:true
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})
更新所有状态为0的人的department字段为inited
db.getCollection('uic_user').update({"state":0},{$set:{"department":"inited"}},{multi:true})

15、更改集合中的某条数据的整体内容
db.col.update({'title':'MongoDB 教程'},{'$set':item_info})

16、删除集合中的某条数据
db.col.remove({'title':'MongoDB 教程'})

17、查询集合中的数据 AND条件
db.col.find({key1:value1, key2:value2}).pretty()
db.col.find({"by":"菜鸟教程", "title":"MongoDB 教程"}).pretty()
查询状态为0并且department字段不为inited的
db.getCollection('uic_user').find({$and:[{"state":0},{"department":{$ne:"inited"}}]})

18、查询集合中的数据 OR条件
db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()

19、AND和OR联合使用
where likes>50 AND (by = '菜鸟教程' OR title = 'MongoDB 教程')
db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()

小于:lt
小于等于:lte
大于:gt
大于等于:gte
不等于:ne

20、limit() 接受一个数组参数,指定从mongo中读取的记录条数
返回有title,没有_id
db.col.find({},{"title":1,_id:0}).limit(2)

21、skip() 接受一个数组参数,指定从mongo中跳过的记录条数
返回第二条文档数据
db.col.find({},{"title":1,_id:0}).limit(1).skip(1)

22、sort通过参数指定排序的字段,按照likes这个参数进行排序,值为-1为降序,为1为升序
db.col.find({},{"title":1,_id:0}).sort({"likes":-1})

23、mongo里面只展示某个字段其余的不展示:例如只展示url字段,不展示_id字段
db.getCollection('data_doc').find({"jobId_tl":1003310},{_id: 0,url: 1})

24、某个字段不同值的数量
db.getCollection('uic_department').distinct("uicId").length

25、包含关系查找name这个字段里面包含“博远”的所有的数据
db.getCollection('uic_department').find({"name":/^.*博远.*$/})

26、查找表中某个字段dataValues.wikiUrl存在的所有数据
db.getCollection('uic_department').find({"dataValues.wikiUrl":{"$exists":true}})

27、查找表中某个字段dataValues.wikiUrl存在并且不为空的所有数据
db.getCollection('uic_department').find({$and:[{"dataValues.wikiUrl":{"$exists":true}},{"dataValues.wikiUrl":{$ne:""}}]})

上一篇下一篇

猜你喜欢

热点阅读