MongoDB查询文档

1年前 (2024-04-27)
前面我们介绍了怎么将文档插入到中,本节我们来介绍一下如何从中查询指定的文档。

find() 方法

想要查询中的文档,可以使用 MongoDB 中的 find() 方法,find() 方法可以将查询结果以非结构化的方式展示出来,其语法格式如下:

db.collection_name.find(query, projection)

语法说明如下:
  • query:可选参数,使用查询操作符指定查询条件;

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


【示例】向中插入一些数据并使用 find() 方法查询中的所有文档:

> db.mycol.insert([

... {

... title: "MongoDB教程",

... description: "MongoDB 是一个 Nosql 数据库",

... by: "编程帮",

... url: "http://www.biancheng网站站点" rel="nofollow" />

db.collection_name.find(query, projection).pretty()

【示例】在使用 find() 查询数据时,使用 pretty() 方法来格式化查询到的数据:

> db.mycol.find().pretty()

{

"_id" : ObjectId("6031c02ae492ab9be9450302"),

"title" : "MongoDB教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "编程帮",

"url" : "http://www.biancheng网站站点" rel="nofollow" />

db.collection_name.findOne(query, projection)

【示例】使用 findOne() 方法从中查询“title”=“MongoDB教程”的文档:

> db.mycol.findOne({title:"MongoDB教程"})

{

"_id" : ObjectId("6031c02ae492ab9be9450302"),

"title" : "MongoDB教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "编程帮",

"url" : "http://www.biancheng网站站点" rel="nofollow" />

db.collection_name.find({$and:[{<key1>:<value1>}, {<key2>:<value2>}], ...})

【示例】在中查询“title”=“MongoDB教程”同时“by”=“编程帮”的文档:

> db.mycol.find({$and:[{title:"MongoDB教程"}, {by:"编程帮"}]}).pretty()

{

"_id" : ObjectId("6031c02ae492ab9be9450302"),

"title" : "MongoDB教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "编程帮",

"url" : "http://www.biancheng网站站点" rel="nofollow" />

> db.mycol.find({title:"MongoDB教程", by:"编程帮"}).pretty()

{

"_id" : ObjectId("6031c02ae492ab9be9450302"),

"title" : "MongoDB教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "编程帮",

"url" : "http://www.biancheng网站站点" rel="nofollow" />

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

【示例】在中查询“title”=“MongoDB教程”或者“by”=“编程帮”的文档:

> db.mycol.find({$or:[{title:"MongoDB教程"}, {by:"编程帮"}]}).pretty()

{

"_id" : ObjectId("6031c02ae492ab9be9450302"),

"title" : "MongoDB教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "编程帮",

"url" : "http://www.biancheng网站站点" rel="nofollow" />

> db.mycol.find({"likes": {$gt:100}, $or: [{"by": "编程帮"},{"title": "MongoDB教程"}]}).pretty()

{

"_id" : ObjectId("6031c02ae492ab9be9450302"),

"title" : "MongoDB教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "编程帮",

"url" : "http://www.biancheng网站站点" rel="nofollow" />