mongo-linux
调用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:""}}]})