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 ...
随机推荐
- JavaIO流——简单对文件的写入及读取(三)
已经讲了写入和读取了,那么想要把一个文件的内容复制到另一个文件呢 不说太多,直接见代码 public static void copyFile(String srcFilename, String d ...
- puppeteer(六)启动参数——浏览器扩展应用的添加及应用
前言 最近再做浏览器的自动化,首页是定制化的,是通过extension(扩展)实现的,由于通过puppeteer默认是以无参(即首次以干净的环境)运行的,导致登录页无法正常显示,首先想当然是直接找扩展 ...
- git反悔
Checkout checkout命令用于从历史提交(或者暂存区域)中拷贝文件到工作目录,也可用于切换分支.  ![ ...
- Eclipse及Eclipse为基础的App报错“Failed to create the Java Virtual Machine”的解决办法
由于OracleJDK马上就要收费了,公司要求更换OpenJDK,结果安装后Eclipse及Eclipse为基础的App启动报错:“Failed to create the Java Virtual ...
- Dapper 批量插入
环境 Mssql 自带的Dapper.Net 批量插入 是一条条循环插入 这里改成了单条 Ps:主要此方法要控制字符串长度哦,每个数据库对单条sql字符长度的限制是不一样的. /// <summ ...
- 跟我一起学python(1)
1.变量 定义一个变量 会有三个特征 id,type,value print(id(age),type(age),age) 命名推荐用下划线方式 (尽量用英文 不要过长 意思要明白) numb ...
- RSA 汇总
最近工作中遇到了RSA,这个,以前只是粗略的看了一下,结果,实际使用的时候,各种眼花缭乱啊.现在整理一下RSA有哪些相关知识. 1. RSA算法本身.算法本身的内容实际上是在pkcs#1的标准里面说明 ...
- java爬取免费HTTP代理 code-for-fun
偶然看到一个提供免费HTTP 代理IP的网站,该网站一两个小时就会更新一次,很有用.之后自己就用Java写了一个爬虫,爬取网站上的代理IP,以备后用. 网站源码: <!DOCTYPE html& ...
- IP通信基础学习第七周(上)
局域网的优点:具有广播功能,从一个站点可以方便的访问全网,局域网上的主机可共享连接在局域网上的各种资源:便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变:提高了系统的可靠性.可用性和生存性. ...
- IP通信基础学习第六周(下)
硬件地址又称物理地址或MAC地址 以太网的MAC帧格式开始的标志是有11出现时,没电时自动结束 适配器的重要功能:进行串行/并行转换:对数据进行缓存:在计算机的操作系统安装设备驱动系统:实现以太协议 ...