一、find() 方法以非结构化的方式来显示所有文档。如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:db.collection_name.find().pretty()

  1、查看数据库下的所有的collection: show collections

    2、查看collection下的数据 db.collection_name.find().pretty()

  MongoDB数据更新可以使用update()函数。在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。

> db.user.save({name:"xxxxx",password:"11111"})
WriteResult({ "nInserted" : 1 })
> db.user.find().pretty()
{
"_id" : ObjectId("569476a63a18f4867aecbcd3"),
"name" : "xxxxx",
"password" : "11111"
}
> db.user.remove("name":"xxxxx")
2016-01-12T11:45:41.976+0800 E QUERY [thread1] SyntaxError: missing ) after a
rgument list @(shell):1:21

> db.user.remove({"name":"xxxxx"})
WriteResult({ "nRemoved" : 1 })
>还是没有注意检查括号

3、find()会返回匹配文档的所有列:

> db.user.find().pretty()
{
  "_id" : ObjectId("569476a63a18f4867aecbcd3"),
  "name" : "xxxxx",
  "password" : "11111"
}

4、返回指定字段和_id字段(默认会返回_id字段):

  db.user.find({"name":"xxxxx"},{name:1})

5、返回排除字段以外的所有字段:

  db.user.find({"name":"xxxxx"},{password:0}).pretty()

  所以4中要想不返回_id 字段,排除掉_id 字段即可:db.user.find({"name":"xxxxx"},{name:1, _id:0})

6、另外内嵌文档查询(点表示法):

  > db.tao.find({"SourceInfo.Platform": "Taobao"},{SourceInfo:1}).pretty(){

  "_id" : ObjectId("57467a880f281ce229632257"),
  "SourceInfo" : {
    "Platform" : "Taobao",
    "Link" : "https://item.taobao.com/item.htm?spm=a219r.lm869.14.14.n6XAO5&id=527138809962&ns=1&abbucket=17#detail",
    "Site" : "",
    "SiteID" : "",
    "ProductID" : "527138809962"
  }
}
{
  "_id" : ObjectId("57467ab60f281ce3adbd6b0a"),
  "SourceInfo" : {
    "Platform" : "Taobao",
    "Link" : "https://item.taobao.com/item.htm?spm=a219r.lm869.14.14.n6XAO5&id=527138809962&ns=1&abbucket=17#detail",
    "Site" : "",
    "SiteID" : "",
    "ProductID" : "527138809962"
  }
}

> db.tao.find({"SourceInfo.Platform": "Taobao"},{"SourceInfo.Platform":1}).pretty()
{
  "_id" : ObjectId("57467a880f281ce229632257"),
  "SourceInfo" : {
    "Platform" : "Taobao"
  }
}
{
  "_id" : ObjectId("57467ab60f281ce3adbd6b0a"),
  "SourceInfo" : {
    "Platform" : "Taobao"
  }
}

  7、当内嵌文档变得复杂后,如键的值为内嵌文档的数组,内嵌文档的匹配需要些许技巧,例如使用$elemMatch操作符。

    "SourceInfo" :

      [

    "Platform" : "Taobao",
    "Link" : "https://item.taobao.com/item.htm?spm=a219r.lm869.14.14.n6XAO5&id=527138809962&ns=1&abbucket=17#detail",
    "Site" : "",
    "SiteID" : "",
    "ProductID" : "527138809962"
  ]

> db.tao.find({},{"SourceInfo":{$elemMatch:{"Platform":"Taobao"}}, _id:0}).pretty(),【1】

二、remove()

  在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。

> db.user.save({name:"xxxxx",password:"11111"})
  WriteResult({ "nInserted" : 1 })
> db.user.find().pretty()
{
  "_id" : ObjectId("569476a63a18f4867aecbcd3"),
  "name" : "xxxxx",
  "password" : "11111"
}
> db.user.remove("name":"xxxxx")
  2016-01-12T11:45:41.976+0800 E QUERY [thread1] SyntaxError: missing ) after a
  rgument list @(shell):1:21

> db.user.remove({"name":"xxxxx"})
  WriteResult({ "nRemoved" : 1 })
>还是没有注意检查括号

如果你想删除所有数据,可以使用以下方式(类似常规 SQL 的 truncate 命令):

db.user.remove()

三、MongoDB 与 RDBMS Where 语句比较(表格来自http://www.runoob.com/mongodb/mongodb-query.html)

如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

操作 格式 范例 RDBMS中的类似语句
等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'
小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50

  1、为admin添加成绩50,

  > db.user.update({"name":"admin"},{$set:{"grade":50}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
  2、为aaaaaa添加成绩99:
  > db.user.update({"name":"aaaaaaaaa"},{$set:{"grade":99}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

  3、查询grade大于50的:

> db.user.find({"grade":{$gt:50}}).pretty()
  {
    "_id" : ObjectId("5694714a3a18f4867aecbcd2"),
    "name" : "aaaaaaaaa",
    "password" : "123456",
    "grade" : 99
  }

4、查询成绩大于等于50的:
> db.user.find({"grade":{$gte:50}}).pretty()
  {
  "_id" : ObjectId("56946fba3a18f4867aecbcd1"),
  "name" : "admin",
  "password" : "123456",
  "title" : "admin",
  "grade" : 50
  }

  {
    "_id" : ObjectId("5694714a3a18f4867aecbcd2"),
    "name" : "aaaaaaaaa",
    "password" : "123456",
    "grade" : 99
  }

 -----db.xx.find({group:{$nin:["0",""]}}) 
--- $nin:["0"] 
--- {”Group“:{$ne:”0“}} 
------------------2016-5-26 14:01:50--修改--
    source:【1】mongoDb查询
 

学习mongo系列(四) find().pretty() remove() 查询的更多相关文章

  1. MyBatis系列四 之 智能标签进行查询语句的拼接

    MyBatis系列四 之 智能标签进行查询语句的拼接 使用Foreach进行多条件查询 1.1 foreach使用数组进行多条件查询 在MyBatis的映射文件中进行如下配置 <!--根据数组进 ...

  2. 学习mongo系列(一) win/mac安装 解析 连接

    一.安装mongo数据库 下载链接https://www.mongodb.org/downloads, 在执行如下命令的时候事先按照目录新建如下的目录:(如果数据库安装在D盘就在D盘的根目录下建)&q ...

  3. 小白学习Spark系列四:RDD踩坑总结(scala+spark2.1 sql常用方法)

    初次尝试用 Spark+scala 完成项目的重构,由于两者之前都没接触过,所以边学边用的过程大多艰难.首先面临的是如何快速上手,然后是代码调优.性能调优.本章主要记录自己在项目中遇到的问题以及解决方 ...

  4. 学习mongo系列(九)索引,聚合,复制(副本集),分片

    一.索引 二.聚合 三.复制(副本集) 四.分片 尚未实践操作. 详见http://www.runoob.com/mongodb/mongodb-indexing.html

  5. 学习mongo系列(八)密码与权限

    一.设置密码及用户角色[1] > db.createUser(... {... user: "maxh",... pwd: "123",... roles ...

  6. 学习mongo系列(七)aggregate() ,$group() 管道

    aggregate()聚合,主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*) 接上边的数据库: > db.user.aggregate ...

  7. 学习mongo系列(六)limit(munber),skip(number)

    > db.user.find().pretty(){ "_id" : ObjectId("56946fba3a18f4867aecbcd1"), &quo ...

  8. 学习mongo系列(二) 新建数据库,collection ,insert(),save()

    一,新建数据库user:use user 二,查看当前使用的数据库:db 三,查看所有数据库:show dbs 四,删除当前正在使用的数据库:db.dropDatabase() 五,在当前数据库中插入 ...

  9. oracle学习笔记(四) DQL数据查询语言和TCL 事务控制语言

    DML 数据管理语言 Data manage language insert, update, delete以及select语句,不过,有人也把select单独出来,作为DQL 数据查询语言 data ...

随机推荐

  1. RESTful框架调研

    背景 当前的开放服务平台发展趋势,是服务使用者变得多种多样,其中既有各种前端设备(台式机.手机等),又有各种后端服务器,因此必须有一个统一的机制,方便各种服务使用者和开放服务平台进行通信.为了更好的实 ...

  2. 初步了解JSONP

    一.JSON 与 JSONP JSON是一种基于文本的数据交换方式(数据描述格式),JSONP是一种非官方跨域数据交互协议. ajax的核心是通过XmlHttpRequest获取非本页内容,而json ...

  3. video和audio

    1.video 使用: <video width="320" height="240" src="http://www.jb51.net/mov ...

  4. lodash的源码(1)

    数组篇 1.compact,就是将数组中的false值去掉 function compact(array) { var index = -1, length = array ? array.lengt ...

  5. 基于docker+etcd+confd + haproxy构建高可用、自发现的web服务

    基于docker+etcd+confd + haproxy构建高可用.自发现的web服务 2016-05-16 15:12 595人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主 ...

  6. ORA-25153: Temporary Tablespace is Empty

    在一测试环境做测试的时候发生以下错误: SQL> exec dbms_stats.gather_table_stats(ownname=>'SYS',tabname=>'TT',me ...

  7. 再叙TIME_WAIT

    之所以起这样一个题目是因为很久以前我曾经写过一篇介绍TIME_WAIT的文章,不过当时基本属于浅尝辄止,并没深入说明问题的来龙去脉,碰巧这段时间反复被别人问到相关的问题,让我觉得有必要全面总结一下,以 ...

  8. 20151208_使用windows2012配置weblogic节点管理器

    经过实践,weblogic节点管理器的作用主要有两点: 1.可通过weblogic控制台远程控制被管server启停. 2.可以自动重启被管server的进程,并且对spring框架提供比直接启动更快 ...

  9. 学习OpenCV——行人检测&人脸检测(总算运行出来了)

    之前运行haar特征的adaboost算法人脸检测一直出错,加上今天的HOG&SVM行人检测程序,一直报错. 今天总算发现自己犯了多么白痴的错误——是因为外部依赖项lib文件没有添加完整,想一 ...

  10. 解决Eclipse启动Tomcat时报Error loading WebappClassLoader错误

    最近新建了一个JSF项目(网上查到用Struts,Spring MVC也会如此),配置好以后用Eclipse启动Tomcat报了如下错误:严重: Error loading WebappClassLo ...