数据查询¶
# 查出所有数据
db.<tableName>.find().limit(30)
# 等于
db.<tableName>.find({"key" : <value>})
# 不等于
db.<tableName>.find({"key" :{$ne: <value>}})
# 多条件and
db.<tableName>.find({"key1" : <value1>, "key2" : <value2>})
# 多条件or
db.<tableName>.find({$or : [{"key1" : <value1>}, {"key2" : <value2>}]})
# 查出一条数据
db.<tableName>.findOne()
# 查出满足条件的一条数据
db.<tableName>.findOne({<key>, <value>})
# Match an Embedded Document
db.inventory.find( { size: { h: 14, w: 21, uom: "cm" } } )
db.inventory.find( { "size.uom": "in" } )
# 根据数组字段部分匹配
# "red"是tags字段中的其中一个element
db.inventory.find( { tags: "red" } )
# 数组的完全匹配
db.inventory.find( { tags: ["red", "blank"] } )
指定返回的键:
# 只取出表中字段为<key1>和<key2>的值
db.<tableName>.find({}, {<key1> : 1, <key2> : 1})
# 取出除字段<key>之外的表的数据
db.<tableName>.find({}, {<key> : 0})
查询条件( $lt
, $lte
, $gt
, $gte
的使用 ):
db.<tableName>.find({<key> : {"$gte" : <value1>, "$lte" : <value2>} } )
$or
, $in
进行OR查询:
# $in
db.<tableName>.find({<key> : {"$in" : [<value1>, <value2>]}})
# $or
db.<tableName>.find({"$or" : [{<key1>:<value1>}, {<key2>:<value2>}]})
$not
是元条件句, 即可以用在任何其他条件之上
使用 find 搜索子文档¶
find 支持使用“field.sub_field”的形式查询子文档。假设有一个文档:
db.fruit.insertOne({
name: "apple",
from: {
country: "China",
province: "Guangdon"
}
})
查询:
db.fruit.find( { "from.country" : "China" } )
db.fruit.find( { "from" : {country: "China"} } )
使用 find 搜索数组¶
● find 支持对数组中的元素进行搜索。假设有一个文档:
db.fruit.insert([
{ "name" : "Apple", color: ["red", "green" ] },
{ "name" : "Mango", color: ["yellow", "green"] }
])
● 考虑以下查询的意义:
db.fruit.find({color: "red"})
db.fruit.find({$or: [{color: "red"}, {color: "yellow"}]} )