这里总结一下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" } ])

mongo 操作小结的更多相关文章

  1. Python Mongo操作

    # -*- coding: utf-8 -*- ''' Python Mongo操作Demo Done: ''' from pymongo import MongoClient conn = None ...

  2. java导入导出excel常用操作小结及简单示例

    POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook();  //创建一个webbook,对应一个Excel文件 HSSFS ...

  3. js,jQuery数组常用操作小结

    一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift() ...

  4. mongo操作及相关资料

    mongo操作 find方法 db.collection_name.find(); 查询所有的结果: select * from users; db.users.find(); 指定返回那些列(键): ...

  5. EntityFramework中几种操作小结

    目前项目中使用到的EntityFramework中几种操作小结,先标记下.没有详细介绍,后续有空的话再补充一些并完善一下. 列中加入RowVersion时间戳 public class Product ...

  6. js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符

    js中对arry数组的各种操作小结   最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...

  7. 树莓派-4WD智能小车操作小结

    树莓派-4WD智能小车操作小结 树莓派4B-4WD智能小车,双层结构,第一层结构为:小车扩展板(底层)+树莓派主板,通过铜柱隔离固定,小车扩展板相当于计算机的外设扩展板:上面一层为第二层,是三个舵机承 ...

  8. mongo操作

    详细使用网址:http://blog.csdn.net/xinghebuluo/article/details/7050811 MongoDB基本使用 成功启动MongoDB后,再打开一个命令行窗口输 ...

  9. php对mongo操作问题

    最近由于业务需求,需要使用php对mongo做一些操作,关于mongodb,选择的版本是:MongoDB shell version: 2.0.6 MongoDB是一种文档导向数据库管理系统,由C++ ...

随机推荐

  1. Happy Java:定义泛型参数的方法

    在平时写代码时,可以自定义泛型类.当使用同一类型的对象时,这是非常有用的,但在实例化类之前,我们不知道它将是哪种类型. 下面让我们定义一个使用泛型参数的方法.首先,在定义一个类用到泛型时,必须使用特殊 ...

  2. linux中合并多个文件内容到一个文件的例子

    尊敬的用户您好,从即日起 导入 及 导出 功能已经下线,请到阿里云官方数据库管理平台 iDB Cloud 使用该功能! 继续在 iDB Cloud 中发现导出的数据库文件是按照每个表生成的SQL文件, ...

  3. 转: springboot2.0下hystrix.stream 404

    springboot2.0下hystrix dashboard Unable to connect to Command Metric Stream解决办法https://blog.csdn.net/ ...

  4. ipod classic 检查硬盘方法

    长按(中间键+MENU)重启接着按(中键+左键)一直进入工程模式进入后顺序是:menu-IO-HARDDRIVE-HDSMARTDATA 就可以看到了. retracts--硬盘磁头非正常退回,比如硬 ...

  5. 关于Server Tomcat v8.0 Server at localhost failed to start的解决办法

    测试环境: Eclipse Java EE IDE for Web Developers. Version: Luna Service Release 1 (4.4.1)Build id: 20140 ...

  6. 使用vlc实现视频TS流的推送

    鉴于Mpeg TS流播放的需求,使用 VLC作为Server来实现输出Mpeg TS    本文仅涉及如何使用VLC的Command来实现作为视频流Server通常可以使用下述四种方式来推送Mpeg ...

  7. 《AndroidStudio每日一贴》2.高速查看项目中近期的变更

    <AndroidStudio每日一贴>2.高速查看项目中近期的变更 高速查看项目中近期的变更,使用快捷键: option + shift +c 很多其它有用技巧请查看<Android ...

  8. 一个里表世界切换的shader效果

    之前GGJ实现了一个,但是实现方式上有很多冗余.今天正好在做一个类似的东西,重新做了一个版本 还是当时美术画的素材: 由于里表世界是不同的内容,是两张材质.所以拆分成不同Layer之后,里世界单独渲染 ...

  9. 2.2 Apache Axis2 快速学习手册之 AXIOM 构建 Web Service

    和上一篇的POJO 部署相比主要是services.xml 中配置的消息接受处理器类不一样和Java 类中写法不一样. 使用AXIOM构建服务 样例源码路径: C:\Apps\axis2\axis2- ...

  10. iOS 画平滑曲线的方法及取音频数据的方法

    源码:http://files.cnblogs.com/ios8/iOS%E5%BF%83%E7%94%B5%E5%9B%BEDemo.zip 取音频数据和画波形图的方法 ViewController ...