总结

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 mongoshell. The examples on this page use the inventory collection. To populate the inventory collection, run the following:

Copy
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:

Copy
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":

Copy
db.inventory.find( { status: "D" } )

This operation corresponds to the following SQL statement:

SELECT * FROM inventory WHERE status = "D"

Specify Conditions Using Query Operators

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":

Copy
db.inventory.find( { status: { $in: [ "A", "D" ] } } )

Although you can express this query using the $or operator, use the $in operator rather than the $oroperator 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 ($lt30:

Copy
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 ORconjunction 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 ($lt30:

Copy
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 ($lt30 or item starts with the character p:

Copy
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.

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:

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.

最新文章

  1. vim安装中文帮助手册
  2. docker-compose启动的tomcat无法远程连接jmx
  3. Performance tuning library cache lock &amp; single-task message
  4. http://www.cnblogs.com/xwdreamer/archive/2012/02/21/2360818.html
  5. Android中连接蓝牙设备时遇到createRfcommSocketToServiceRecord的UUID问题和BluetoothSocket的connect失败
  6. python学习笔记之十:文件和素材
  7. java-生产者消费者模式
  8. JFFS2 文件系统及新特性介绍
  9. CSS 控制table 滑动及调整列宽等问题总结
  10. 分享自己总结的PMP项目管理20个G的资料,本人去年过的pmp认证,过了5A
  11. python之字符串反转
  12. Mybatis 传递多个参数
  13. linux 查看进程下进程的数量
  14. [jQ/PHP]使用JS数组储值的两种情况(提交PHP处理)
  15. sh脚本学习之:变量
  16. 消除ADB错误“more than one device and emulator”的方法(转)
  17. 移动端H5适配方法(盒子+图片+文字)
  18. android studio中使用adb wifi插件无线调试程序
  19. Windows如何设置动态和静态ip地址
  20. 저장소system.runtime.remoting.messaging.callcontext

热门文章

  1. flex and bison学习笔记01
  2. Powershell分支条件
  3. c# 字符串排序 (面试题)
  4. git branch --set-upstream hmyq/master master
  5. Python爬虫学习笔记(一)
  6. org.springframework.beans.factory.parsing.BeanDefinitionParsingException
  7. mac 干掉Dashboard
  8. Database Designer
  9. css3 box
  10. ddos cc攻击简单介绍(转)