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. FB面经Prepare: Bipartite a graph

    input friends relations{{1,2}, {2,3}, {3,4}} 把人分成两拨,每拨人互相不认识, 所以应该是group1{1,3}, group2{2,4} 这道题应该是ho ...

  2. RSA算法的C++string实现(模幂算法和欧几里得算法的使用)后附思路

    void resetNumA(string numAStr); //使用string重置numB void resetNumB(string numBStr); //将数组转换为字符串,用于输出 st ...

  3. 搭建apache本地服务器·Mac

    1. 打开终端,开启Apache: //开启apache: sudo apachectl start //重启apache: sudo apachectl restart //关闭apache: su ...

  4. android sdk 安装 配置

    下载android sdk manager:http://dl.google.com/android/installer_r24.4.1-windows.exe 打开sdk manager 在tool ...

  5. 蓝桥杯c/c++省赛真题——日志统计

    标题:日志统计 [问题描述]小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是:ts id  表示在ts时刻编号id的帖子收到一个" ...

  6. Linux实战

    1.root用户无法删除文件 [root@VM_0_9_centos .ssh]# lsattr authorized_keys ----i----------- authorized_keys ls ...

  7. 示例, linq分组

    public class HIS_CLIREGISTER : BaseModel{ private String _FBCODE;[StringLength(8)]/// <summary> ...

  8. storm-sql-kafka问题情况

    首先上官方文档:http://storm.apache.org/releases/1.2.2/storm-sql.html 解决的问题 1.kafka版本不对 开始测试时采用storm1.2.2+ka ...

  9. qemu到kvm的处理,再到vm的运行

    1.QEMU创建虚拟机发起:kvm_ioctl(s, KVM_CREATE_VM, type); KVM中kvm_dev_ioctl判断参数->kvm_dev_ioctl_create_vm-& ...

  10. kafka学习-坑篇

    安装(滤过) 启动(滤过) 坑(开始)--- topic creat完成后准备使用console-produce发布一个topic,错误如下: [-- ::,] WARN [Producer clie ...