如何从MongoDB集合中只检索到一个文档

43 阅读1分钟

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

MongoDB有一个方便的方法叫findOne ,它和find 方法非常相似,只是它返回实际的文档而不是游标,而且它只返回第一个文档。如果你需要从一个查询中返回多个文档,你将不得不暂时坚持使用findfindMany 方法。

如果我们把这里显示的文档放在一个叫做users 的集合中:

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

如果我们在MongoDB中运行以下命令:

db.users.findOne()

它将返回users 集合中的第一个文档,因为我们没有指定任何过滤器:

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

如果我们指定我们只想要admin 的用户:

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

即使有两个用户满足该过滤器,我们也只会得到Jane Doe ,因为她是第一个符合该过滤器的文档:

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