MongoDB 查询文档

基本的查询操作涵盖了简单的操作,例如获取 MongoDB 集合中的所有文档。让我们看看如何实现这一目标的一个例子。

我们所有的代码都将在 MongoDB JavaScript 命令 shell 中运行。比如我们在 MongoDB 数据库中有一个名为 Employee 的集合,我们执行以下命令。

> db.Employee.find( {} )

代码说明:

  1. Employee 是 MongoDB 数据库中的集合名称
  2. find 命令是一个内置函数,用于检索集合中的文档。

如果命令执行成功,将显示以下输出

输出:

> db.Employee.find().forEach(printjson);
{
	"_id" : objectId("563479cc8a8a4246bd27d784"), 
	"Employeeid" : 1, 
	"EmployeeName" :'"Smith"
}
{
    "_id" : ObjectId("563479d48a8a4246bd27d785"), 
    "Employeeid" : 2,
    "EmployeeName" : ' "Mohan"
}
{
	"_id" : ObjectId("563479df8a8a4246bd27d786"), 
	"Employeeid" : 3, 
	"EmployeeName" : '"Joe"
}

输出显示集合中存在的所有文档。

我们还可以为查询添加条件,以便我们可以根据特定条件获取文档。

让我们看一下如何实现这一目标的几个例子。

db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);

代码说明:

  1. 在这里,我们想要找到一个名为 Smith 的员工,因此我们输入过滤条件为 EmployeeName:Smith

如果命令执行成功,将显示以下输出

输出:

> db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);
{
	"_id" : objectId("563479cc8a8a4246bd27d784"), 
	"Employeeid" : 1, 
	"EmployeeName" :'"Smith"
}

输出显示只返回包含 Smith 作为 Employee Name 的文档。

现在,让我们看看另一个使用大于搜索条件的代码示例。包含此条件时,它实际上会搜索字段值大于指定值的文档。

db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);

代码说明:

  1. 在这里,我们希望找到 ID 大于 2 的所有员工。$gt 被称为查询选择运算符,其意思是使用大于表达式。

如果命令执行成功,将显示以下输出

输出:

> db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);
{
	"_id" : ObjectId("563479df8a8a4246bd27d786"), 
	"Employeeid" : 3, 
	"EmployeeName" : '"Joe"
}

返回 Employee id 大于 2 的所有文档。