8.Query Documents-官方文档摘录
总结
1 先插入数据
db.inventory.insertMany([
{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
])
2 查询所有数据
db.inventory.find({})
3 指定相等条件
db.inventory.find({
status:"D" })
4 指定查询运算条件
db.inventory.find({
status:{
$in:["A","D"] }
}
)
5 指定and的条件
db.inventory.find({
status:"A",
qty:{$lt:30}
})
6 指定or条件
db.inventory.find({
$or:[
{status:"A"},
{qty:30}
] })
7 指定and和or的条件
db.inventory.find({
status:"A",
$or:[
{qty:{
$lt:30
}},
{item:/^p/}
]
})
This page provides examples of query operations using the db.collection.find()
method in the mongo
shell. The examples on this page use the inventory
collection. To populate the inventory
collection, run the following:
db.inventory.insertMany([
{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);
You can run the operation in the web shell below:
Select All Documents in a Collection
To select all documents in the collection, pass an empty document as the query filter parameter to the find method. The query filter parameter determines the select criteria:
db.inventory.find( {} )
These operation corresponds to the following SQL statement:
SELECT * FROM inventory
For more information on the syntax of the method, see find()
.
Specify Equality Condition
To specify equality conditions, use <field>:<value>
expressions in the query filter document:
{ <field1>: <value1>, ... }
The following example selects from the inventory
collection all documents where the status
equals "D"
:
db.inventory.find( { status: "D" } )
This operation corresponds to the following SQL statement:
SELECT * FROM inventory WHERE status = "D"
Specify Conditions Using Query Operators
A query filter document can use the query operators to specify conditions in the following form:
{ <field1>: { <operator1>: <value1> }, ... }
The following example retrieves all documents from the inventory
collection where status
equals either"A"
or "D"
:
db.inventory.find( { status: { $in: [ "A", "D" ] } } )
Although you can express this query using the $or
operator, use the $in
operator rather than the $or
operator when performing equality checks on the same field.
The operation corresponds to the following SQL statement:
SELECT * FROM inventory WHERE status in ("A", "D")
Refer to the Query and Projection Operators document for the complete list of MongoDB query operators.
Specify AND
Conditions
A compound query can specify conditions for more than one field in the collection’s documents. Implicitly, a logical AND
conjunction connects the clauses of a compound query so that the query selects the documents in the collection that match all the conditions.
The following example retrieves all documents in the inventory
collection where the status
equals "A"
and qty
is less than ($lt
) 30
:
db.inventory.find( { status: "A", qty: { $lt: 30 } } )
The operation corresponds to the following SQL statement:
SELECT * FROM inventory WHERE status = "A" AND qty < 30
See comparison operators for other MongoDB comparison operators.
Specify OR
Conditions
Using the $or
operator, you can specify a compound query that joins each clause with a logical OR
conjunction so that the query selects the documents in the collection that match at least one condition.
The following example retrieves all documents in the collection where the status
equals "A"
or qty
is less than ($lt
) 30
:
db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )
The operation corresponds to the following SQL statement:
SELECT * FROM inventory WHERE status = "A" OR qty < 30
NOTE
Queries which use comparison operators are subject to Type Bracketing.
Specify AND
as well as OR
Conditions
In the following example, the compound query document selects all documents in the collection where thestatus
equals "A"
and either qty
is less than ($lt
) 30
or item
starts with the character p
:
db.inventory.find( {
status: "A",
$or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
} )
The operation corresponds to the following SQL statement:
SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 OR item LIKE "p%")
NOTE
MongoDB supports regular expressions $regex
queries to perform string pattern matches.
Additional Query Tutorials
For additional query examples, see:
Behavior
Cursor
The db.collection.find()
method returns a cursor to the matching documents.
Read Isolation
New in version 3.2.
For reads to replica sets and replica set shards, read concern allows clients to choose a level of isolation for their reads. For more information, see Read Concern.
Additional Methods
The following methods can also read documents from a collection:
db.collection.findOne
- In aggregation pipeline, the
$match
pipeline stage provides access to MongoDB queries.
NOTE
The db.collection.findOne()
method also performs a read operation to return a single document. Internally, the db.collection.findOne()
method is the db.collection.find()
method with a limit of 1.
8.Query Documents-官方文档摘录的更多相关文章
- Cocos Creator 加载和切换场景(官方文档摘录)
Cocos Creator 加载和切换场景(官方文档摘录) 在 Cocos Creator 中,我们使用场景文件名( 可以不包含扩展名)来索引指代场景.并通过以下接口进行加载和切换操作: cc.dir ...
- ng的概念层次(官方文档摘录)
官方文档是这么说的: You write Angular applications by: composing HTML templates with Angularized markup, writ ...
- 10.Query an Array-官方文档摘录
1.插入 db.inventory.insertMany([ { item: "journal", qty: 25, tags: ["blank", " ...
- Cocos Creator 使用计时器(官方文档摘录)
在 Cocos Creator 中,我们为组件提供了方便的计时器,这个计时器源自于 Cocos2d-x 中的 cc.Scheduler,我们将它保留在了 Cocos Creator 中并适配了基于组件 ...
- Cocos Creator 生命周期回调(官方文档摘录)
Cocos Creator 为组件脚本提供了生命周期的回调函数.用户通过定义特定的函数回调在特定的时期编写相关 脚本.目前提供给用户的声明周期回调函数有: onLoad start update la ...
- angular 模板语法(官方文档摘录)
https://angular.cn/guide/template-syntax {{}} 和"" 如果嵌套,{{}}里面求完值,""就是原意 <h3&g ...
- Qt元类型(MetaType)注册入门(附一些官方文档的关键摘录)
昨天调试项目时,突然发现如下消息: QObject::connect: Cannot queue arguments of type 'ERROR_LEVEL' (Make sure 'ERROR_L ...
- Spring Data Commons 官方文档学习
Spring Data Commons 官方文档学习 -by LarryZeal Version 1.12.6.Release, 2017-07-27 为知笔记版本在这里,带格式. Table o ...
- [翻译]PyMongo官方文档
PyMongo官方文档翻译 周煦辰 2016-06-30 这是本人翻译的PyMongo官方文档.现在网上分(抄)享(袭)的PyMongo博客文章很多,一方面这些文章本就是抄袭的,谈不上什么格式美观,另 ...
- 【AutoMapper官方文档】DTO与Domin Model相互转换(中)
写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...
随机推荐
- [svc][db]centos7 Mariadb安装
yum install mariadb-server mariadb -y 修改配置: [mysqld] default-storage-engine = innodb innodb_file_per ...
- 安装yii2高级应用模板
composer global require "fxp/composer-asset-plugin:1.0.0" composer create-project --prefer ...
- Oracle Explain plan 使用总结
Oracle Explain plan使用总结 写多了SQL语句,伴随着数据量的海增,总会遇到性能的问题.在Oracle领域一个不好的习惯,一旦遇到性能问题就推给DBA来做.长期如此,反而对DB ...
- 做过的自定义 View
做过的自定义 View android view custom 音频条状图 需求 详细设计 具体实现 音频条状图 需求 音频图 最终效果类似于音频图中的条状图 只是效果模拟,并不监听真实的音频 条的宽 ...
- 通用采集器Modbus协议应用
1. 功能码 通用采集器一般包含DI,DO,AI相关接口,对此类接口主要应用功能码01~06. 3类接口具体对应关系如下: 继电器定义,功能码01/05(01:读线圈,05写线圈) 序号 ...
- git版本管理之git-ssh 配置和使用
1.设置用户名和邮箱 $ git config --global user.name "gsx-gh" $ git config --global user.email " ...
- Guardian of Decency UVALive - 3415 最大独立集=结点数-最大匹配数 老师带大学生旅游
/** 题目:Guardian of Decency UVALive - 3415 最大独立集=结点数-最大匹配数 老师带大学生旅游 链接:https://vjudge.net/problem/UVA ...
- 【★】深入BGP原理和思想【第…
前言:学思科技术我想说,浅尝辄止,不是天才千万别深钻.和我研究高等数学一样,越深入就会发现越多的问题与不合理之处.尤其对于IT界,算法的最终解释权还是掌握在老外手中,所以对于有些细节,我们" ...
- 关联数据和formatter问题-easyui+微型持久化工具
控制器 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste ...
- 竞赛图的得分序列 (SRM 717 div 1 250)
SRM 717 DIV 1 中 出了这样一道题: 竞赛图就是把一个无向完全图的边定向后得到的有向图,得分序列就是每个点的出度构成的序列. 给出一个合法的竞赛图出度序列, 要求构造出原图(原题是求(u, ...