如何使用过滤器从MongoDB检索特定的文件

71 阅读1分钟

关于MongoDB的全面概述以及我关于它的所有帖子,请查看我的概述

虽然你可以使用find方法从MongoDB中读出多个文档,但你更可能只想要这些数据的一个子集。find 方法可以接受两个参数,第一个参数决定了游标返回的数据是什么。你经常看到或听到这个第一个参数被称为 "查询",而不是过滤器。

给定的数据在一个叫做users

{
	"name": "John Doe",
	"email": "test@test.com",
	"admin": false
},
{
	"name": "Jane Doe",
	"email": "test2@test2.com",
	"admin": false
}

如果我想只得到电子邮件为 "test@test.com "的用户,你可以通过传入一个带有一些表达式的对象来实现,MongoDB将使用这些表达式来决定返回哪些数据。

db.users.find({email: "test@test.com"})

将会返回:

{
	"name": "John Doe",
	"email": "test@test.com",
	"admin": false
}

获取所有的管理员用户。

db.users.find({admin: true})

将不返回,因为我们在该数据集中没有管理员用户。

你也可以在多个字段上进行匹配:

db.users.find({admin: false, email: "test2@test2.com"})

将会返回:

{
	"name": "Jane Doe",
	"email": "test2@test2.com",
	"admin": false
}