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的文档 |
小于 | { |
{"age":{$lt:27}} | 查询age值小于27的文档 |
小于等于 | { |
{"age":{$lte:27}} | 查询age值小于等于27的文档 |
大于 | { |
{"age":{$gt:15}} | 查询age值大于15的文档 |
大于等于 | { |
{"age":{$gte:19}} | 查询age值大于等于19的文档 |
不等于 | { |
{"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)不等于