1、插入测试数据
use flower
db.goods.insert({'goods_name':'Hyacinth',price:10,num:800})
db.goods.insert({goods_name:'Hyacinth',price:10,num:800})
db.goods.insert({goods_name:'violet',price:20,num:1000})
db.goods.insert({goods_name:'Plum blossom',price:20,num:1000})
db.goods.insert({goods_name:'Datura',price:40,num:700})
db.goods.insert({goods_name:'Rosemary',price:39,num:2000})
db.goods.insert({goods_name:'Rosemary',price:39,num:2000,area:{province:'beijing','city':'beijing'}})
db.goods.insert({goods_name:'Rosemary',price:39,num:2000,area:{province:'Shanghai','city':'Shanghai'}})
db.goods.insert({goods_name:'Chinese rose',price:67,num:3700,area:{province:'Henan','city':'Luoyang'}})
db.goods.insert({goods_name:'Chinese rose',price:32,num:900,area:{province:'Henan','city':'Luoyang'}})
db.goods.insert({goods_name:'Chinese rose',price:32,num:900,area:{province:'Henan','city':'Luoyang'},color:['write','red']})
db.goods.insert({goods_name:'Chinese rose',price:32,num:900,area:{province:'Henan','city':'Luoyang'},color:['red','green']})
db.goods.insert({goods_name:'Chinese rose',price:32,num:900,area:{province:'Henan','city':'Luoyang'},color:['write','red','grees']})

添加数据的方式:普通数据的添加、多维数据的添加、数组数据的添加

2、MongoDB命令行查询数据

MongoDB命令行查询数据有以下几种方式

  • 笼统方式查询
  • 条件限制查询
  • 范围查询
  • 多个查询条件
  • 多维字段的查询
  • 数组条件的限制查询
  • 字段的限制查询
1)笼统方式查询:
db.goods.find()

db.goods.find()

{ "_id" : ObjectId("5cb5bba28a0ad00bec55f14b"), "goods_name" : "Hyacinth", "price" : 10, "num" : 800 }

{ "_id" : ObjectId("5cb5bba28a0ad00bec55f14c"), "goods_name" : "Hyacinth", "price" : 10, "num" : 800 }

{ "_id" : ObjectId("5cb5bba28a0ad00bec55f14d"), "goods_name" : "violet", "price" : 20, "num" : 1000 }

……

采用这种方式查询,会查询所有数据。

db.goods.findOne()

查询所有数据中的第一条,并且将数据格式化输出。

db.goods.findOne()

{

"_id" : ObjectId("5cb5bba28a0ad00bec55f14b"),

"goods_name" : "Hyacinth",

"price" : 10,

"num" : 800

}

2)条件限制查询
db.goods.find({goods_name:'Hyacinth'})

{ "_id" : ObjectId("5cb5bba28a0ad00bec55f14b"), "goods_name" : "Hyacinth", "price" : 10, "num" : 800 }

{ "_id" : ObjectId("5cb5bba28a0ad00bec55f14c"), "goods_name" : "Hyacinth", "price" : 10, "num" : 800 }

相当于:SELECT *FROM goods WHERE goods_name='Hyacinth'

db.goods.findOne({goods_name:'Hyacinth'})

{

"_id" : ObjectId("5cb5bba28a0ad00bec55f14b"),

"goods_name" : "Hyacinth",

"price" : 10,

"num" : 800

}

该_id字段的内容值是MongoDB本身算法获得出来的,_id字段对应的值是“全球唯一”的,相当于MySQL表里的主键id,是唯一的。id可以自行设置,但是不推荐。

优点:方便MongoDB的数据做升级、迁移

3)范围查询

查询goods表中价格大于10的数据:

db.goods.find({price:{'$gt':10}})

查询goods表中价格大于等于10的数据:

db.goods.find({price:{'$gte':10}})

查询goods表中价格小于10的数据:

db.goods.find({price:{'$lt':12}})

查询goods表中价格小于等于10的数据:

db.goods.find({price:{'$lte':12}})
4)多个查询条件

例如:要求price大于10,库存大于800

db.goods.find({price:{'$gt':10},num:{'$gt':800}})

要求price大于10,库存为900

db.goods.find({price:{'$gt':10},num:900})
5)多维字段的查询
db.goods.find({'area.province':'Shanghai'})
db.goods.find({'area.city':'Shanghai'})
6)数组条件的限制查询

查询“color”中有“red”记录,满足一个元素即可:

db.goods.find({color:'red'})

查询“color”中有“red”并且(AND)有“write”的记录:

db.goods.find({color:{'$all':['red','write']}})

查询“price”是10或者(OR)“num”是800

db.goods.find({$or:[{'price':10},{'num':800}]})
7)字段的限制查询
db.goods.find({price:32},{goods_name:1})

{ "_id" : ObjectId("5cb5bba28a0ad00bec55f154"), "goods_name" : "Chinese rose" }

{ "_id" : ObjectId("5cb5bba28a0ad00bec55f155"), "goods_name" : "Chinese rose" }

{ "_id" : ObjectId("5cb5bba28a0ad00bec55f156"), "goods_name" : "Chinese rose" }

{ "_id" : ObjectId("5cb5bba48a0ad00bec55f157"), "goods_name" : "Chinese rose" }

db.goods.find({price:32},{goods_name:1,_id:0})

{ "goods_name" : "Chinese rose" }

{ "goods_name" : "Chinese rose" }

{ "goods_name" : "Chinese rose" }

{ "goods_name" : "Chinese rose" }

db.goods.find({price:{'$gt':30}},{goods_name:1,_id:0})

{ "goods_name" : "Datura" }

{ "goods_name" : "Rosemary" }

{ "goods_name" : "Rosemary" }

{ "goods_name" : "Rosemary" }

{ "goods_name" : "Chinese rose" }

{ "goods_name" : "Chinese rose" }

{ "goods_name" : "Chinese rose" }

{ "goods_name" : "Chinese rose" }

{ "goods_name" : "Chinese rose" }

db.goods.find({price:{'$gt':30}},{goods_name:1,price:1,_id:0})

{ "goods_name" : "Datura", "price" : 40 }

{ "goods_name" : "Rosemary", "price" : 39 }

{ "goods_name" : "Rosemary", "price" : 39 }

{ "goods_name" : "Rosemary", "price" : 39 }

{ "goods_name" : "Chinese rose", "price" : 67 }

{ "goods_name" : "Chinese rose", "price" : 32 }

{ "goods_name" : "Chinese rose", "price" : 32 }

{ "goods_name" : "Chinese rose", "price" : 32 }

{ "goods_name" : "Chinese rose", "price" : 32 }

说明:_id字段除外,其它字段可以随意设置0,1。可以设置全部字段都输出,也设置为全部字段都不输出。但是,字段中一个是1,另一个是0,这是不可以。

MongoDB数据查询 --MongoDB的更多相关文章

  1. 03 - Mongodb数据查询 | Mongodb

    1.基本查询 ①方法find():查询 db.集合名称.find({条件文档}) ②方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档}) ③方法pretty(): ...

  2. MongoDB 数据查询

    数据查询 基本查询 方法find():查询 db.集合名称.find({条件文档}) 方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档}) 方法pretty(): ...

  3. MongoDB数据查询详解

    查询全部 ​ db.infos.find(); db.infos.find({"url":"www.baidu.com"}); id不要显示出来 db.info ...

  4. MongoDB数据查询

    启动MongoDB:sudo service mongodb start,mongo 经测试,键可加引号也可不加,但是值一般要加引号,数值类型除外 MongoDB区分大小写,命名通常采用驼峰式命名法 ...

  5. 4.Mongodb数据查询2

    1.limit &skip (1)Limit 方法limit():用于读取指定数量的文档 语法: db.集合名称.find().limit(NUMBER) 参数NUMBER表示要获取文档的条数 ...

  6. 3 Mongodb数据查询1

    1.基本查询 方法find():查询 db.集合名称.find({条件文档}) 方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档}) 方法pretty():将结果 ...

  7. MongoDB 数据建模

    版权所有,未经许可,禁止转载 章节 MongoDB 入门 MongoDB 优势 MongoDB 安装 MongoDB 数据建模 MongoDB 创建数据库 MongoDB 删除数据库 MongoDB ...

  8. MongoDB数据访问[C#]附源码下载(查询增删改) 转载

    安装完MongoDBhttp://localhost:28017/监测是否成功! vs 2008 C# MongoDB 源代码下载地址:http://download.csdn.net/source/ ...

  9. 方法:查询MongoDB数据库中最新一条数据(JAVA)

    使用JAVA语言查询MongoDB中某个数据库某个集合的最新一条数据: MongoCollection<Document> cpu = MongoClient.getDatabase(&q ...

随机推荐

  1. C++模板类中友元函数的写法

    首先,已声明好的类Triangle file://Triangle.h template<class T> class Triangle{ public: Triangle(T width ...

  2. 【Python学习】yield send我就说这么多

    C#的yield已经忘得差不多了.又遇到python的yield.iterator def testYield(): print 'yield1' m = yield 1 print 'm =' , ...

  3. nginx+fastCGI

    首先贴些遇到的问题,之后再整理 1.yum -y install pcre zlib OpenSSL openssl-devel  pcre-devel 2. nginx: [emerg] " ...

  4. 【转】jenkins自动化部署项目7 -- 新建job(将服务代码部署在windows上)

    关于构建结束后jenkins会kill所有衍生子进程的官方解决方案:https://wiki.jenkins.io/display/JENKINS/Spawning+processes+from+bu ...

  5. BELLMEN-FORD普通

    #include <iostream> using namespace std; int m, n, u[100010], v[100010], w[100010];int check;i ...

  6. Docker 构建 RabbitMQ 集群

    刚开始,关于RabbitMQ集群的搭建,我找到了这篇文章:Docker 安装 RabbitMQ 集群 从而找到了第三方的RabbitMQ集群容器 rabbitmq-server 但是这个容器只有3.6 ...

  7. TortoiseGit拉取或推送,输入账号密码后提示 HTTP Basic: Access denied fatal: Authentication failed 解决方案

    TortoiseGit拉取或推送项目,输入账号密码后,提示 HTTP Basic: Access denied fatal: Authentication failed. 大体意思是,HTTP基本认证 ...

  8. asp.net(c#)网页跳转 方法小结

    返回 打印 asp.net(c#)网页跳转七种方法小结_实用技巧_脚本之家 在asp.net下,经常需要页面的跳转,下面是具体的几种方法.跳转页面是大部编辑语言中都会有的,正面我们来分别介绍一下关于. ...

  9. MyPython

    目录 Python,那些不可不知的事儿 Python简介 Python环境搭建 从Hello World开始 Python中的数据类型 函数 模块 面向对象 More Python,那些不可不知的事儿 ...

  10. Dataframe 多行合并为一行

    原表数据: 最后4行合并为1行: def ab(df): return','.join(df.values) df = df.groupby(['股票代码','股票简称'])['所属概念'].appl ...