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. iOS 如何在自定义类中支持 "[]" 运算符

    在相应类中实现如下协议即可. 1.字典类 - (id)objectForKeyedSubscript:(NSObject <NSCopying> *)key; - (void)setObj ...

  2. day16 python之匿名函数,递归函数

    匿名函数 匿名函数格式 函数名 = lambda 参数 :返回值 #参数可以有多个,用逗号隔开 #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值 #返回值和正常的函数一样可以是任 ...

  3. C# 键盘钩子

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

  4. 百度API经纬度和地址互相查询

    /** * 获取地址对应的坐标 * @param $address * @return array */ function getAddressPoint($address){ $lng = 0; $ ...

  5. Linux 磁盘挂载分区

    举例说明: 新增磁盘的设备文件名为 /dev/vdb 大小为100GB. #fdisk -l 查看新增的的磁盘 1.对新增磁盘进行分区 #fdisk /dev/vdb 按提示操作 p打印 n新增 d ...

  6. Spring Cloud 和 Dubbo 比较

    Spring Cloud 和 Dubbo 比较

  7. 【javascript】上拉下拉弹窗实现

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. PowerDesigner 15的Table表视图的列显示Code

    PowerDesigner 15的图表的Table表视图一般显示成这样: 现在,我要将Code显示到Table表视图上,该怎么做?选择菜单:Tools→Display Preferences,弹出对话 ...

  9. 使用第三方jar时出现的问题

    Eclipse下把jar包放到工程lib下和通过buildpath加载有什么不同(解决找不到类的中级方法) 我通过Eclipse的 User Libranry 将jar导入 Eclipse里面,编译没 ...

  10. mysql之统一刷表

    统一刷表: update report set pdfPath= CONCAT(pdfPath ,substring_index(fileLink, '\\', -1)); update report ...