• 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文件所在地址)
    
  • 相关阅读:
    【2020-04-14】吃一折,长一智吧
    对“沟通成本”模型的一个重新假设
    【2020-04-13】稀缺才能让人珍惜
    【2020-04-12】决策都是当前认知的反映
    hhhhh我进步啦!
    求后序遍历(信息学奥赛一本通 1339)
    数的划分(信息学奥赛一本通 1304 洛谷 1025)
    memset函数怎么用嘞↓↓↓
    stack函数怎么用嘞?↓↓↓
    终于开通博客啦!
  • 原文地址:https://www.cnblogs.com/AdolphWilliam/p/14620639.html
Copyright © 2020-2023  润新知