MongoDB数据查询 --MongoDB
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的更多相关文章
- 03 - Mongodb数据查询 | Mongodb
1.基本查询 ①方法find():查询 db.集合名称.find({条件文档}) ②方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档}) ③方法pretty(): ...
- MongoDB 数据查询
数据查询 基本查询 方法find():查询 db.集合名称.find({条件文档}) 方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档}) 方法pretty(): ...
- MongoDB数据查询详解
查询全部 db.infos.find(); db.infos.find({"url":"www.baidu.com"}); id不要显示出来 db.info ...
- MongoDB数据查询
启动MongoDB:sudo service mongodb start,mongo 经测试,键可加引号也可不加,但是值一般要加引号,数值类型除外 MongoDB区分大小写,命名通常采用驼峰式命名法 ...
- 4.Mongodb数据查询2
1.limit &skip (1)Limit 方法limit():用于读取指定数量的文档 语法: db.集合名称.find().limit(NUMBER) 参数NUMBER表示要获取文档的条数 ...
- 3 Mongodb数据查询1
1.基本查询 方法find():查询 db.集合名称.find({条件文档}) 方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档}) 方法pretty():将结果 ...
- MongoDB 数据建模
版权所有,未经许可,禁止转载 章节 MongoDB 入门 MongoDB 优势 MongoDB 安装 MongoDB 数据建模 MongoDB 创建数据库 MongoDB 删除数据库 MongoDB ...
- MongoDB数据访问[C#]附源码下载(查询增删改) 转载
安装完MongoDBhttp://localhost:28017/监测是否成功! vs 2008 C# MongoDB 源代码下载地址:http://download.csdn.net/source/ ...
- 方法:查询MongoDB数据库中最新一条数据(JAVA)
使用JAVA语言查询MongoDB中某个数据库某个集合的最新一条数据: MongoCollection<Document> cpu = MongoClient.getDatabase(&q ...
随机推荐
- FB面经Prepare: Bipartite a graph
input friends relations{{1,2}, {2,3}, {3,4}} 把人分成两拨,每拨人互相不认识, 所以应该是group1{1,3}, group2{2,4} 这道题应该是ho ...
- RSA算法的C++string实现(模幂算法和欧几里得算法的使用)后附思路
void resetNumA(string numAStr); //使用string重置numB void resetNumB(string numBStr); //将数组转换为字符串,用于输出 st ...
- 搭建apache本地服务器·Mac
1. 打开终端,开启Apache: //开启apache: sudo apachectl start //重启apache: sudo apachectl restart //关闭apache: su ...
- android sdk 安装 配置
下载android sdk manager:http://dl.google.com/android/installer_r24.4.1-windows.exe 打开sdk manager 在tool ...
- 蓝桥杯c/c++省赛真题——日志统计
标题:日志统计 [问题描述]小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是:ts id 表示在ts时刻编号id的帖子收到一个" ...
- Linux实战
1.root用户无法删除文件 [root@VM_0_9_centos .ssh]# lsattr authorized_keys ----i----------- authorized_keys ls ...
- 示例, linq分组
public class HIS_CLIREGISTER : BaseModel{ private String _FBCODE;[StringLength(8)]/// <summary> ...
- storm-sql-kafka问题情况
首先上官方文档:http://storm.apache.org/releases/1.2.2/storm-sql.html 解决的问题 1.kafka版本不对 开始测试时采用storm1.2.2+ka ...
- qemu到kvm的处理,再到vm的运行
1.QEMU创建虚拟机发起:kvm_ioctl(s, KVM_CREATE_VM, type); KVM中kvm_dev_ioctl判断参数->kvm_dev_ioctl_create_vm-& ...
- kafka学习-坑篇
安装(滤过) 启动(滤过) 坑(开始)--- topic creat完成后准备使用console-produce发布一个topic,错误如下: [-- ::,] WARN [Producer clie ...