文档章节

mongodb的一些知识

Tony2015
 Tony2015
发布于 2015/05/05 14:16
字数 1028
阅读 26
收藏 0
点赞 0
评论 0
1.指定等于查询条件
 
要指定相等查询条件,使用查询文档 { <field>: <value> } 查询所有包含 <field> 字段并且值等于 <value> 的集合
下面的示例从 inventory 集合中检索所有字段 type 值为的文档 snacks
 
db.inventory.find( { type:  "snacks"   } );
 
2.在同字段上使用相等条件查询时更宁愿使用 $ in   查询操作符不用$ or
  inventory 集合中 type 字段值为  'food'   或  'snacks'   的所有文档:
 
db.inventory.find( { type: { $ in : [  'food' 'snacks'   ] } }
 
3.指定与查询条件
复合查询可指定文档中多个字段作为查询条件。使用  AND   逻辑连接复合查询的条件子句,以筛选出集合中所有符合查询条件的文档
查询选取所有 type 字段等于  'food'   并且 price 字段值小于 9.95 的文档
 
db.inventory.find( { type:  'food' , price: { $lt: 9.95 } } )
 
4.指定或查询条件
使用 $ or   操作符,可通过  OR   逻辑连接每个子句以指定一个复合查询,查询将筛选集合中至少匹配一个查询条件的文档
查询文档筛选出集合中 qty 字段值大于 ($gt) 100 或 price 字段小于 ($lt) 9.95 的所有文档:
 
db.inventory.find(
    {
      $ or : [ { qty: { $gt: 100 } }, { price: { $lt: 9.95 } } ]
    }
)
 
5.同时指定 与和或查询条件
复合查询文档筛选出集合中 type 字段值为  'food'
  并且 qty 字段的值大于 ($gt) 100 或  price 的值小于 ($lt) ``9.95``的所有文档:
db.inventory.find(
    {
      type:  'food' ,
      $ or : [ { qty: { $gt: 100 } }, { price: { $lt: 9.95 } } ]
    }
)

6.内嵌文档
a.精确匹配 用查询文档 { <field>: <value> },其中 <value> 是用于匹配的文档。相等匹配要求 <value> 文档与内嵌文档 完全 匹配,包括字段顺序。
在如下示例中,查询将匹配 producer 字段为内嵌文档,并 包含 company 和 address 字段(字段顺序相同),且值分别为 'ABC123' 与 '123 Street' 的所有文档

db.inventory.find(
    {
      producer:
        {
          company: 'ABC123',
          address: '123 Street'
        }
    }
)

b.相等匹配
下面示例中,查询使用 dot notation 匹配 producer 字段为内嵌文档,该内嵌文档中包含 company 字段(可包含其他字段)且值为 'ABC123' 的所有文档:


db.inventory.find( { 'producer.company': 'ABC123' } )




7.数组
考虑集合 inventory 包含如下文档
{ _id: 5, type: "food", item: "aaa", ratings: [ 5, 8, 9 ] }
{ _id: 6, type: "food", item: "bbb", ratings: [ 5, 9 ] }
{ _id: 7, type: "food", item: "ccc", ratings: [ 9, 5, 8 ] }



数组的精确匹配
下面示例将筛选出 ratings 字段为数组,包含 5, 8, 9 三个元素并且元素顺序符合该顺序的所有文档:
db.inventory.find( { ratings: [ 5, 8, 9 ] } )

{ "_id" : 5, "type" : "food", "item" : "aaa", "ratings" : [ 5, 8, 9 ] }



匹配数组元素
相等匹配可以指定数组中单一元素进行匹配。这些相等匹配将匹配包含至少一个元素等于指定值的数组
下面示例查询数组字段 ratings 中元素之一为 5 的所有文档
db.inventory.find( { ratings: 5 } )
操作将返回如下文档:
{ "_id" : 5, "type" : "food", "item" : "aaa", "ratings" : [ 5, 8, 9 ] }
{ "_id" : 6, "type" : "food", "item" : "bbb", "ratings" : [ 5, 9 ] }
{ "_id" : 7, "type" : "food", "item" : "ccc", "ratings" : [ 9, 5, 8 ] }


匹配数组指定元素
在下面示例中,查询使用 dot notation 匹配数组字段 ratings 的第一个元素为 5 的所有文档:
db.inventory.find( { 'ratings.0': 5 } )
操作将返回如下文档:

{ "_id" : 5, "type" : "food", "item" : "aaa", "ratings" : [ 5, 8, 9 ] }
{ "_id" : 6, "type" : "food", "item" : "bbb", "ratings" : [ 5, 9 ] }
满足条件的元素组合
下面示例将查询 ratings 中包含某些元素组合满足查询条件的文档;比如,一个元素满足大于 5 的条件,另外元素满足小于 9 的条件,或一个元素同时满足两个条件;
 db.inventory.find( { ratings: { $gt: 5, $lt: 9 } } )

 操作将返回如下文档
{ "_id" : 5, "type" : "food", "item" : "aaa", "ratings" : [ 5, 8, 9 ] }
{ "_id" : 6, "type" : "food", "item" : "bbb", "ratings" : [ 5, 9 ] }
{ "_id" : 7, "type" : "food", "item" : "ccc", "ratings" : [ 9, 5, 8 ] }

8.限制查询返回的字段
对于包含数组的字段,MongoDB提供了如下的投影操作符: $elemMatch$slice 以及 $
{ "_id" : 5, "type" : "food", "item" : "aaa", "ratings" : [ 5, 8, 9 ] }
下面的操作使用 $slice 映射操作符以仅仅返回 ratings 数组里的前两个元素。
db.inventory.find( { _id: 5 }, { ratings: { $slice: 2 } }


































































© 著作权归作者所有

共有 人打赏支持
Tony2015
粉丝 1
博文 26
码字总数 28618
作品 0
杭州
程序员
阿里专家视频课限时抢!精讲+实操12节课学懂MongoDB数据库!

想要学习MongoDB却不知道如何入门? 漫天的培训课程却无一讲解实战案例? 云栖社区联手阿里云大学独家出品—— 阿里云MongoDB技术负责人、MongoDB中文社区联席主席联合操刀 12期精讲+实操,全...

a独家记忆
07/12
0
0
MongoDB系列教程(八):GridFS存储详解

MongoDB系列教程(八):GridFS存储详解 GridFS简介 mongoDB的文档以BSON格式存储,支持二进制的数据类型,当我们把二进制格式的数据直接保存到mongoDB的文档中。但是当文件太大时,例如图片...

开元中国2015
2015/07/25
0
0
mongodb在linux下安装

mongodb linux 安装 下载 cd /usr/local/src wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.4.9.tgz tar -xzvf mongodb-linux-i686-2.4.9.tgz mv mongodb-linux-i686-2.4.9 .......

Le_Guto
2014/01/24
0
0
Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一)

Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图。那么如何在Asp.Net Core Web Api实现图片上传存...

依乐祝
07/11
0
0
MongoDB 4.0 正式发布,支持多文档事务

MongoDB 4.0 已正式发布,MongoDB 是一个开源文档数据库,提供高性能、高可用性和自动扩展。 下载地址:MongoDB Download Center 在 4.0 正式发布之前,我们已经报道了其相关更新信息,此次正...

h4cd
06/29
0
27
Python selenium自动化网页抓取器

(开开心心每一天~ ---虫瘾师) 直接入正题---Python selenium自动控制浏览器对网页的数据进行抓取,其中包含按钮点击、跳转页面、搜索框的输入、页面的价值数据存储、mongodb自动id标识等等...

jamesjoshuasss
01/19
0
0
mongodb在windows下的安装

首先去官网下载合适的版本,对应自己的系统。将压缩包解压 建 立两个目录,一个是日志目录D:MongoDBlogslogs.log,一个是存放数据文件的目录D:MongoDBdata,然后打开 cmd命令行,输入D:Mongo...

很不牛x
2013/09/11
0
0
mongodb在windows下的安装

首先去官网下载合适的版本,对应自己的系统。将压缩包解压 建立两个目录,一个是日志目录D:MongoDBlogslogs.log,一个是存放数据文件的目录D:MongoDBdata,然后打开cmd命令行,输入D:MongoDB...

十七亮
2013/02/20
0
0
视觉中国潘凡谈MongoDB应用实践

受访人 潘凡 采访人 黄玲艳 发布于 2011年8月25日 概要 本次采访中,来自视觉中国的技术总监兼架构师潘凡分享了视觉中国网站在技术选型中的一些经验,根据网站业务需求及数据量,最终选择Mon...

zjf_sdnu
2011/10/15
0
0
mac mongodb安装配置

安装: curl -O http://fastdl.mongodb.org/osx/mongodb-osx-x8664-1.6.3.tgz tar xzf mongodb-osx-x8664-1.6.3.tgz sudo mv mongodb-osx-x86_64-1.6.3 /usr/local/mongodb sudo mkdir /usr/......

cbliu
2013/11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

NNS域名系统之域名竞拍

0x00 前言 其实在官方文档中已经对域名竞拍的过程有详细的描述,感兴趣的可以移步http://doc.neons.name/zh_CN/latest/nns_protocol.html#id30 此处查阅。 我这里主要对轻钱包开发中会用到的...

暖冰
今天
0
0
32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0
shell中的函数&shell中的数组&告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

影夜Linux
今天
0
0
Linux网络基础、Linux防火墙

Linux网络基础 ip addr 命令 :查看网口信息 ifconfig命令:查看网口信息,要比ip addr更明了一些 centos 7默认没安装ifconfig命令,可以使用yum install -y net-tools命令来安装。 ifconfig...

李超小牛子
今天
1
0
[机器学习]回归--Decision Tree Regression

CART决策树又称分类回归树,当数据集的因变量为连续性数值时,该树算法就是一个回归树,可以用叶节点观察的均值作为预测值;当数据集的因变量为离散型数值时,该树算法就是一个分类树,可以很...

wangxuwei
昨天
1
0
Redis做分布式无锁CAS的问题

因为Redis本身是单线程的,具备原子性,所以可以用来做分布式无锁的操作,但会有一点小问题。 public interface OrderService { public String getOrderNo();} public class OrderRe...

算法之名
昨天
10
0
143. Reorder List - LeetCode

Question 143. Reorder List Solution 题目大意:给一个链表,将这个列表分成前后两部分,后半部分反转,再将这两分链表的节点交替连接成一个新的链表 思路 :先将链表分成前后两部分,将后部...

yysue
昨天
1
0
数据结构与算法1

第一个代码,描述一个被称为BankAccount的类,该类模拟了银行中的账户操作。程序建立了一个开户金额,显示金额,存款,取款并显示余额。 主要的知识点联系为类的含义,构造函数,公有和私有。...

沉迷于编程的小菜菜
昨天
1
0
从为什么别的队伍总比你的快说起

在机场候检排队的时候,大多数情况下,别的队伍都要比自己所在的队伍快,并常常懊悔当初怎么没去那个队。 其实,最快的队伍只能有一个,而排队之前并不知道那个队快。所以,如果有六个队伍你...

我是菜鸟我骄傲
昨天
1
0
分布式事务常见的解决方案

随着互联网的发展,越来越多的多服务相互之间的调用,这时候就产生了一个问题,在单项目情况下很容易实现的事务控制(通过数据库的acid控制),变得不那么容易。 这时候就产生了多种方案: ...

小海bug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部