mongo部分指令记录

show dbs; --> 显示所有数据库预览

db.stats(); --> 系统分配的数据库的参数

use blog; --> 进入某个数据库(此处为blog),没有此数据库则创建

show collections; --> 显示数据库的集合预览

db.createCollection("users"); --> 在某个数据库建立集合(此处创建一个users集合(表))

db.users.renameCollection("staff"); --> user集合名字转成staff

db.staff.drop(); --> 删除集合staff

db.dropDatabase(); --> 删除数据库

db.users.insert(
  {
    name: 'admin',
    password: '123456'
  }
); --> 集合中插入一条文档(记录)

for(var i = 3; i <= 10; i++) {
  db.users.insert(
    name: 'admin' + i  
  );
} --> 循环插入文档

db.users.find(); --> 在集合中查找所有的文档

db.users.count(); --> 集合中文档数量

db.users.remove({}); --> 删除所有文档

db.[collection_name].find({"":""})
db.[collection_name].distinct("field_name");

db.users.find({"name":"admin"}); --> 取出name为admin的文档

db.users.find({"rank":{$gte: 4}}); --> 取出rank大于等于4的文档,同时还有$gt大于,$lte小于等于,$lt小于

db.users.find({"title": /u/}); --> 取出title中带u的文档,同时还有/^R/以R开头(此处区分大小写)

db.users.distinct("tag"); --> 查看有多少种tag

db.[collection_name].find({"":"","":""});
db.[collection_name].find({$or: [{...},{...}]});
db.[collection_name].find({"":{$in: [...]}});
db.[collection_name]find({"": {$exists: true}});

db.users.find({"title": /u/, "rank": {$gte: 5} }); --> title带u的且rank大于等于5文档

db.users.find({$or: [{"title": /u/}, {"rank": {$gte: 4}}] }); --> title带u或者rank大于等于4的文档

db.users.find({"rank": {$in: [3,4]} }); --> rank等于3或者4的文档

db.users.find({"istop": {$exists: true} }); --> 只有istop存在的文档才被抽出

db.[collection_name].find({}, {field1: true, field2: 1})

db.users.find({}, {title: true, rank: 1}); --> 只拿出文档其中的title和rank(当然同时有id)

db.users.find({}, {title: true, rank: 1, _id: 0}); --> 只拿出文档其中的title和rank(且不抽出id)

db.users.find({}, {_id: 0}).sort({rank: 1}); --> 抽出所有文档(不抽出id),且按照rank升序排序;

db.users.find({}, {_id: 0}).sort({rank: -1}); --> 抽出所有文档(不抽出id),且按照rank降序排序;

db.users.find({}, {_id: 0}).limit(3); --> 抽出所有文档的前3条(不抽出id);

db.users.find({}, {_id: 0}).sort({rank: -1}).limit(3); --> 按照rank降序排序后,抽出所有文档的前3条(不抽出id);

db.users.findOne({}, {_id: 0}); --> 抽出文档的第一条(不抽出id);

db.users.find({}, {_id: 0}); --> 抽出文档(不抽出id);

db.users.find({}, {_id: 0}).skip(3).limit(3); --> 跳过所有文档的前3条再抽出3条(不抽出id);

db.users.update({},{$set: {"roleName": "admin"}},{upsert: false,multi:true}); --> 给users的所有文档新增一个roleName为admin的字段(upsert:如果设置为true,则在没有文档符合查询条件时创建一个新文档
multi:如果设置为true,则更新满足查询条件的多个文档。如果设置为false,则更新一个文档);

db.users.update({"title": "a"}, {$set: {"rank": 10} }); --> 找出title为a的文档,且设置其rank为10(第一条相关文档)

db.users.update({"title": "a"}, {"rank": 10}); --> 找出title为a的文档,且将相关文档字段都删除(除id外),然后写入rank为10

db.users.update({"tag": "it"}, {$set: {"rank": 50} }); --> 找出tag为it的文档,且设置其rank为50(第一条相关文档)

db.users.update({"tag": "it"}, {$set: {"rank": 50}}, {multi: true}); --> 找出tag为it的文档,且设置其rank为50(所有相关文档)

$inc: 递加,$mul: 相乘,$rename: 改名,$set:新增or修改,$unset: 字段删除

db.users.update({title:"a"}, {$inc: {rank: 1}}); --> 对title为a的文档进行rank加1操作

db.users.update({title:"a"}, {$mul: {rank: 2}}); --> 对title为a的文档进行rank乘2操作

db.users.update({title:"a"}, {$rename: {"rank": "score"}}); --> 对title为a的文档进行rank重命名为score操作

db.users.update({title:"a"}, {$set: {"istop": true}}); --> 对title为a的文档进行istop为true设置操作(没有则添加istop: true)

db.users.update({title:"a"}, {$unset: {"istop": true}}); --> 对title为a的文档进行istop字段删除操作

upsert:有则更新,无则添加 remove:条件删除数据

db.users.update({title: 'a'}, {title: 'a', "rank: 5, "tag": "game"}); --> 存在则记录被覆盖,不存在则不增加(不同于下边一条)

db.users.update({title: 'a'}, {title: 'a', "rank: 5, "tag": "game"}, {upsert: true}); --> 存在则修改,不存在则增加

db.users.remove({title: 'a'}); --> 删除文档

getIndexes();取出所有索引 createIndex({...},{...});创建一个索引 dropIndex();删除一个索引

db.users.getIndexes(); --> 取出当前集合的所有索引

db.users.createIndex({rank: -1}); --> 以rank降序创建索引

db.users.dropIndex({rank: -1}); --> 以rank降序删除索引

db.users.createIndex({title: 1}, {unique: true}); --> 以title升序且title唯一创建索引(后续title不可重复)

备份与恢复 mongodump & mongorestore

mkdir dbbak --> 创建一个文件夹用于备份

cd dbbak;

mongodump -d blog; --> 备份blog数据库

ls; --> 查看一下(备份的文件,一般目录dump-->blog-->users.bson)

mongo blog; --> 进入blog数据库(快捷键)

db.users.remove({}); --> 删除users中所有的数据

mongorestore --drop; --> 去掉当前数据,然后用备份文件数据库进行恢复

mongo blog;

mongodump --help;

mongodump -h dbhost -d dbname -o dbdirectory;
-h:
MongoDB 所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:
需要备份的数据库实例,例如:test
-o:
备份的数据存放位置,例如:c:datadump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

恢复mongorestore
mongorestore -h localhost:27017 -d db名字(如:readweb) dirpath(bson/json文件所在地址)
原文地址:https://www.cnblogs.com/AdolphWilliam/p/14620639.html