MongoDB查询文档

3.5 MongoDB 查询文档

MongoDB 查询文档使用 find() 方法。

find() 方法以非结构化的方式来显示所有文档。find()查询数据的语法格式如下:

db.collection.find(query, projection)[.pretty()]
  • query :可选,使用查询操作符指定查询条件

  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

  • .pretty() : 美化查询结果。

  • 除find()外,还有findOne() 方法,它只返回一个文档。

MongoDB 与 RDBMS Where 语句比较

MongoDB与常规的 SQL 数据条件查询类似,通过下表可以更好的理解 MongoDB 的条件语句查询:

| 操作 | 格式 | 范例 | RDBMS中的类似语句 | | --- | --- | --- | --- | | 等于 | {: } | db.col.find({"by":"goudan"}).pretty() | where by = 'goudan' | | 小于 | {:{$lt:}} | db.col.find({"likes":{$lt:50}}).pretty() | where likes < 50 | | 小于或等于 | {:{$lte:}} | db.col.find({"likes":{$lte:50}}).pretty() | where likes <= 50 | | 大于 | {:{$gt:}} | db.col.find({"likes":{$gt:50}}).pretty() | where likes > 50 | | 大于或等于 | {:{$gte:}} | db.col.find({"likes":{$gte:50}}).pretty() | where likes >= 50 | | 不等于 | {:{$ne:}} | db.col.find({"likes":{$ne:50}}).pretty() | where likes != 50 |

MongoDB and条件

MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。

语法格式如下:

>db.col.find({key1:value1, key2:value2}).pretty()

MongoDB OR 条件

MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

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

查询案例

-- 查询myTable所有数据
> db.myTable.find()
{ "_id" : ObjectId("62a46dee4c256eb2b320f208"), "id" : 1, "name" : "goudan", "address" : "beijing" }
{ "_id" : ObjectId("62a46e194c256eb2b320f209"), "id" : 2, "name" : "mz", "address" : "beijing" }
{ "_id" : ObjectId("62a46e644c256eb2b320f20a"), "id" : 3, "name" : "sjg", "address" : "beijing" }
{ "_id" : ObjectId("62a46e644c256eb2b320f20b"), "id" : 4, "name" : "haonan", "address" : "jianshazui" }
{ "_id" : ObjectId("62a46eae4c256eb2b320f20c"), "id" : 5, "name" : "rz", "address" : "tangshan" }
​
-- 查询myTable name=sjg的数据
> db.myTable.find({"name":"sjg"})
{ "_id" : ObjectId("62a46e644c256eb2b320f20a"), "id" : 3, "name" : "sjg", "address" : "beijing" }
​
-- 查询myTable name=sjg and address=beijing的数据
> db.myTable.find({"name":"sjg","address":"beijing"})
{ "_id" : ObjectId("62a46e644c256eb2b320f20a"), "id" : 3, "name" : "sjg", "address" : "beijing" }
​
-- 查询myTable name = sjg or address=beijing的数据
> db.myTable.find({$or:[{"name":"sjg"},{"address":"beijing"}]})
{ "_id" : ObjectId("62a46dee4c256eb2b320f208"), "id" : 1, "name" : "goudan", "address" : "beijing" }
{ "_id" : ObjectId("62a46e194c256eb2b320f209"), "id" : 2, "name" : "mz", "address" : "beijing" }
{ "_id" : ObjectId("62a46e644c256eb2b320f20a"), "id" : 3, "name" : "sjg", "address" : "beijing" }
​
-- 查询myTable id > 1 and (name=sjg or address=beijing)的数据
> db.myTable.find({"id":{$gt:1},$or:[{"name":"sjg"},{"address":"beijing"}]})
{ "_id" : ObjectId("62a46e194c256eb2b320f209"), "id" : 2, "name" : "mz", "address" : "beijing" }
{ "_id" : ObjectId("62a46e644c256eb2b320f20a"), "id" : 3, "name" : "sjg", "address" : "beijing" }
​
-- 查询myTable第一条数据
> db.myTable.findOne()
{
    "_id" : ObjectId("62a46dee4c256eb2b320f208"),
    "id" : 1,
    "name" : "goudan",
    "address" : "beijing"
}
​
-- 查询myTable满足name=sjg or address=beijing条件的第一条数据
> db.myTable.findOne({$or:[{"name":"sjg"},{"address":"beijing"}]})
{
    "_id" : ObjectId("62a46dee4c256eb2b320f208"),
    "id" : 1,
    "name" : "goudan",
    "address" : "beijing"
}

MongoDB查询文档_第1张图片

Guff_hys_python数据结构,大数据开发学习,python实训项目-CSDN博客

你可能感兴趣的:(python,numpy,算法,eclipse,大数据,mapreduce,系统架构)