• mongo 操作小结


    这里总结一下mongo常用操作语句,分享给大家和我自己~

    打印系统,数据库,集合的信息

    db.stats()                                    打印数据库状态

    db                             打印当前数据库名称

    db.stats()                     打印数据库状态

    show dbs                       打印所有的数据库

    show users                     打印用户

    db.getName()                   打印数据库名称

    show collections               打印当前数据库下所有的表名

    db.getCollectionNames()        打印当前数据库的表名

    db.printCollectionStats()      打印各表的状态信息

    db.printShardingStatus()       打印分片状态信息

    数据库操作

    use test                       切换到test数据库

    db.dropDatabase()              删除当前数据库

    集合操作

    # foo换成你要操作的集合名字

    插入文档

    db.users.insert({username: "smith"})   插入数据

    save和insert区别

    可以看到决定是插入一个文档还是更新,取决于_id参数。如果能根据_id找到一个已经存在的文档,那么就更新。如果没有传入_id参数或者找不到存在的文档,那么就插入一个新文档。

    insert: 若新增数据的主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常提示主键重复,不保存当前数据。

    save: 若新增数据的主键已经存在,则会对当前已经存在的数据进行修改操作。

    查询文档

    db.foo.distinct(key)           按照给定的条件除重

    db.foo.distinct('x')           参考上行

    db.foo.count()                 统计集合的行数

    db.foo.dataSize()              统计集合数据的大小

    db.foo.find(...).count()       计数

    db.foo.find(...).limit(n)      根据条件查找数据并返回指定记录数

    db.foo.find(...).skip(n)

    db.foo.find(...).sort(...) 查找排序

    db.col.find({},{"title":1,_id:0}).sort({"likes":-1}),这里排序的列还要加上引号?-1表示倒排

    db.foo.findOne([query]) 根据条件查询只查询一条数据

    db.foo.find( [query] , [fields])

    db.foo.find( { x : 77 } , { name : 1 , x : 1 } )

    db.users.find().pretty()       格式化查询出来的数据

    db.foo.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } ) 根据条件分组

    db.foo.mapReduce(mapFunction,reduceFunction,<optional params>)

    使用and操作

    db.foo.find({$and: [

        { x: 1 },

        { username: "smith"}

    ]})

    使用or操作

    db.foo.find({$or: [

        { x: 1 },

        { username: "smith"}

    ]})

    更新文档

    只更新某个字段     db.foo.update({username: "smith"}, {$set: {country: "Canada"}})

    替换更新,而不是更新某个字段    db.foo.update({username: "smith"}, {country: "Canada"})

    删除字段      db.foo.update({username: "smith"}, {$unset: {country: 1}})

    删除文档

    根据条件删除数据       db.foo.remove(query)

    集合元数据操作

    删除集合   db.foo.drop()

    重命名集合    db.foo.renameCollection(newName)

    返回表所属的库   db.foo.getDB() get DB object associated with collection

    查看表的状态         db.foo.stats()

    查询分配到表空间大小         db.foo.storageSize()

    查询所有索引的大小             db.foo.totalIndexSize()

    查询表的总大小                      db.foo.totalSize()

    集合索引操作

    删除指定索引                 db.foo.dropIndex(name)

    删除所有索引                 db.foo.dropIndexes()

    增加索引                          db.foo.ensureIndex(keypattern,options)

    显示表的所有索引         db.foo.getIndexes()

    用户,角色,权限操作

    先切换到admin库     use admin

    创建用户

    db.createUser({

         user: "myUserAdmin",

         pwd: "abc123",

         roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]

    })

    登陆                   db.auth("myUserAdmin", "abc123")

    为用户授权      db.grantRolesToUser("myUserAdmin", [ { role: "read", db: "admin" } ])

  • 相关阅读:
    通过vue-cli命令行安装uni-app
    微信小程序中父子通信
    react启动问题
    react 父子通信
    windows下MongoDB的安装和启动服务--转载
    vue中使用骨架 vue-skeleton-webpack-plugin
    像企业一样思考
    Promise原理详解
    如何封装一个Cookie库
    你应该知道的浏览器缓存知识
  • 原文地址:https://www.cnblogs.com/tuhooo/p/9678876.html
Copyright © 2020-2023  润新知