其实在MongoDB里面,find()和findOne()的用法是一样的,举个例子:findOne({name:”mongo”})和find({name:”mongo”}).limit(1)其实是等效的。它们的参数也是一样的,只不过find()和findOne()返回的不同而已。
第一个区别就是,findOne()会返回符合条件的第一个文档,而find()会返回所有符合条件的对象。
例如有这样一个数据库:
1 张三 男 24岁
2 李四 男 19岁
3 张三 女 22岁
如果你用findOne({name:”张三”})查询,返回的只会是第一个张三:
1 张三 男 24岁
如果用find({name:”张三”})查询的话,就会返回两个张三了:
1 张三 男 24岁
3 张三 女 22岁
第二个区别是,findOne()返回的是一个对象,而find()返回的是一个数组,数组里面装着对象。
两者看起来好像差不多,但findOne()返回的值前端只需要用data.name就能获取到,但find()返回的值前端要用data[i].name来获取。