mongodb文档查询操作

mongodb使用find()方法执行查询操作,

语法

db.COLLECTION_NAME.find(


)

参数解析

  • query 可选,指定查询操作条件
  • projection 可选,指定返回的键,查询时返回所有的键时,省略该参数即可
    如果要以易读的方式来查询数据,可使用以下方法
db.collection_name.find().pretty()

实例

查询myCollection集合name属性值为ddd的文档

> db.myCollection.find({"name":"ddd"})
{ "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "name" : "ddd", "age" : 19 }
> db.myCollection.find({"name":"ddd"}).pretty()
{ "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "name" : "ddd", "age" : 19 }

mongodb与mysql的where使用比较

操作 格式 范例 解释
等于 {:} {"name":"ddd"} 查询name值为ddd的文档
小于 {:{$lt:}} {"age":{$lt:27}} 查询age值小于27的文档
小于等于 {:{$lte:}} {"age":{$lte:27}} 查询age值小于等于27的文档
大于 {:{$gt:}} {"age":{$gt:15}} 查询age值大于15的文档
大于等于 {:{$gte:}} {"age":{$gte:19}} 查询age值大于等于19的文档
不等于 {:{$ne:}} {"name":{$ne:"ddd"}} 查询name值不等于ddd的文档记录

mongodb的and条件

语法

db.COLLECTION_NAME.find({key1:value1,key2:value2})

and条件就是用,(逗号)隔开查询条件就可以了

实例

#  查询name值为ddd且age值为19的文档
> db.myCollection.find({"name":"ddd","age":19})
{ "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "name" : "ddd", "age" : 19 }

mongodb中的or条件

语法

db.COLLECTION_NAME.find({
$or:[
{key1:value1},{key2:value2}
]
})

实例

#查询name值等于ddd或者name值等于wfei的文档
> db.myCollection.find({$or:[{"name":"ddd"},{"name":"wfei"}]})
{ "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "name" : "ddd", "age" : 19 }
{ "_id" : ObjectId("5a90352b113385ab59f380b2"), "name" : "wfei" }

mongodb指定返回字段

语法

# 指定返回feild1与feild2字段返回
db.COLLECTION_NAME.find(
query,
{feild1:1,
feild2:1}
)
# 指定返回feild1与feild2字段不返回
db.COLLECTION_NAME.find(
query,
{feild1:0,
feild2:0}
)

实例

#查询myCollection 集合中name值为ddd,age值为19的文档,且只显示name字段
> db.myCollection.find({"name":"ddd","age":19},{"name":1})
{ "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "name" : "ddd" }
#查询myCollection 集合中name值为ddd,age值为19的文档,且显示name之外的其他字段
> db.myCollection.find({"name":"ddd","age":19},{"name":0})
{ "_id" : ObjectId("5a903519d5f9a583d52a7f7b"), "age" : 19 }

这里的“只显示”xxx字段与“显示”xxx之外的其他字段不可以混用
如以下的用法是不对的

> db.myCollection.find({"name":"ddd","age":19},{"name":0,"age":1})
Error: error: {
    "ok" : 0,
    "errmsg" : "Projection cannot have a mix of inclusion and exclusion.",
    "code" : 2,
    "codeName" : "BadValue"
}

关于操作符

  • lt(less than)小于
  • lte (less than equals)小于等于
  • gt (grater than )大于
  • gte(grater than equals)大于等于
  • ne (not equals)不等于

你可能感兴趣的:(mongodb文档查询操作)