Express mongoose查询返回数组而不是对象

Express mongoose查询返回数组而不是对象,express,mongoose,Express,Mongoose,我在猫鼬查询中遇到了一个奇怪的问题。当我执行db.collection.find时,它应该按预期返回一个对象。我在mongo shell有这么多 当我在express router端点中执行类似的查询时,我得到的是数组而不是对象。像 [ { 菜肴:[ 5ECA6151761C0480320C12, 5ECA6151761C0480320C15 ], _id:5ecae7eb2e746b312cfdf59e, 用户:5ec644d06715633270d0414d, ... } ] 这会导致我的前

我在猫鼬查询中遇到了一个奇怪的问题。当我执行db.collection.find时,它应该按预期返回一个对象。我在mongo shell有这么多

当我在express router端点中执行类似的查询时,我得到的是数组而不是对象。像

[ { 菜肴:[ 5ECA6151761C0480320C12, 5ECA6151761C0480320C15 ], _id:5ecae7eb2e746b312cfdf59e, 用户:5ec644d06715633270d0414d, ... } ] 这会导致我的前端应用程序出错。以下是我最喜欢的模型中的模式:

var favoriteSchema=新模式 { 菜肴:[ { 类型:mongoose.Schema.Types.ObjectId, 裁判:“盘子”, 独一无二:没错, }, ], 用户:{ 类型:mongoose.Schema.Types.ObjectId, ref:'用户', }, }, { 时间戳:对, } ; 这是我的express端点:

.getreq,res,next=>{ 收藏夹。查找{} 然后 收藏夹=>{ res.statusCode=200; res.setHeader'Content-Type'、'application/json'; res.jsonfavorite; console.logfavorite; }, err=>nexterr .catcherr=>nexterr; } 如果有人能帮我解决这个问题,我衷心感谢。

如果您要查找单个结果或空值,您可能希望将findOne用于mongoose。如果使用find,则预期结果将不止一行


请记住,如果找不到要查找的行,则应处理收藏夹为空的情况。此时,您可能希望返回不同的响应。

.find{parameter}按给定参数返回数据库中的所有对象