• MongoDB的一些CURD操作


      MongoDB的一些增删改查命令操作:

      官方文档参考

       https://docs.mongodb.com/manual/reference/method/

       https://docs.mongodb.com/manual/reference/operator/

    #查看当前mongod下有哪些数据库:
    show dbs
    
    #进入或者创建一个数据库: use 数据库名称
    use db_name
    
    #查看当前数据库下,有哪些集合(表):
    show tables
    或者
    show collections
    
    #创建一个集合,(直接插入一个文档)
    db.集合名称.insert({a:1})
    
    #更新文档
    db.集合名称.update(query, update, option)
    
    #删除文档
    db.集合名称.remove(query, justone)
    
    #查询文档
    db.集合名称.find(query, projection)
    
    #创建索引
    db.集合名称.createIndex(keys, options)
    
    #删除当前数据库
    db.dropDatabase()
    
    #删除表
    db.集合名称.drop()
    
    #排序
    sort
    
    #查询时跳过和limit
    skip  limit
    
    #常用聚合
    countgroup、aggregate、mapReduce 等等

    ----------------------------------------------------------

    几个例子:

    增加一条文档:几种数据类型的展示

    db.user.insert({
        "userid":1,
        "username":'user1',
        "isDel":false,
        "high":1.80,
        "age":18,
        "fonds":['coding', 'sleeping'],
        "parents":{
            "father":"xx",
            "mother":"yy",
        },
        "date": new Date(),
        "time": new Timestamp(),
    });

     ----------------------------------------------------------

    更新: db.collection.update(query, update, option)

    第一个参数,query表示条件;

    第二个参数,update更新,注意$set:{}的用法,更新bson内的数组和对象用法;

    第三个参数,option,upsert表示如果query条件没有就插入一条,multi是否更新多个满足条件的记录。

    db.user.update({"userid":1}, {$set:{
        "isDel": true,
        "parents.mother":"zz",
        "fonds.1":'playing',
    }}, {upsert: false, multi: false});

    由于mongoDB是灵活的模式,同一个集合下的各个字段可能在一个文档里存在,另一条不存在。

    比如要把userid=1的这条文档的isDel域删掉,更新语句这样写:

    第二个参数update,利用了$unset:{}。更多去参考 https://docs.mongodb.com/manual/reference/operator/update/

    db.user.update({"userid":1}, {$unset:{
        "isDel": "",
    }}, {multi: false});

     ----------------------------------------------------------

    删除操作: db.collection.remove(query, justone)

    db.collection.remove({"userid":{$gte:5}}, false) 

    该语句表示删除userid大于等于5的文档

    query是条件,注意$gte这些操作符的写法

    justone表示是否允许删除多条文档

    -------------------------------------------------------------

    查询操作: db.collection.find(query, projection)

    用法更多参考: https://docs.mongodb.com/manual/reference/operator/query/

    db.collection.find({ "userid":{ $gt : 1, $lte :5 } }, {"_id":0, "userid":1, "username":1})

    该语句表示查找userid大于1小于等于5的文档,并取出userid和username域,不要_id域(默认会取出该_id字段)

    第一个参数query,表示查询条件;

    第二个参数projection,表示取出的映射字段,1为取出来,0不展示。

    ----------------------------------------------------------

    创建索引: db.collection.createIndex(keys, options)

    查看一个集合下的索引:db.collection.getIndexes()

    默认创建一个集合时,会生成 _id 的默认索引

    db.collection.createIndex({userid:1, cdate:-1}})

    创建一个复合索引,userid正序,cdate倒序的索引。

    ----------------------------------------------------------

    其他常用操作, sort、limit、skip、count、group、aggregate、mapReduce。

    在官方操作手册上查看.

    再附上一个网友总结的常用CURD操作上,mongoDB和sql的对比:

    http://www.cnblogs.com/yangxia-test/p/3979981.html

  • 相关阅读:
    值得收藏的146条经典民间偏方[转]
    删除暴风文件夹内的stormliv.exe
    【转】VLAN技术浅谈
    [转载]双击.dsw文件时另开VC6.0,而不会关掉原来已打开的项目的解决办法(转载)
    JVM系列1:Java内存区域
    并发系列3:Lock锁以及核心类AQS
    并发系列1:并发基础知识
    JVM系列2:垃圾收集器与内存分配策略
    JVM系列3:类加载机制
    源码解析之AQS源码解析
  • 原文地址:https://www.cnblogs.com/firstForEver/p/6852459.html
Copyright © 2020-2023  润新知