gpt4 book ai didi

javascript - 为什么选择( Mongoose 查询)不起作用?

转载 作者:行者123 更新时间:2023-11-30 09:38:58 27 4
gpt4 key购买 nike

我正在尝试获取用户的高分帖子。为此,我查询了 Post 模型,找到了 user._id 作为帖子中的 author 的帖子。

这工作得很好。

但是,我只想获取帖子的 _idvoteCount。出于某种原因,添加 select 只会抛出错误并表示它是一个 unprocessable entity

这里是查询:

  getHighscorePost(req, res, next) {
const firebaseUID = req.params.uid;

User.findOne({ firebaseUID })
.select('_id')
.then(user => {
Post.find({ author: user._id })
.select('_id, voteCount')
.sort({ voteCount: -1 })
.limit(1)
.then(post => res.send(post[0]))
.catch(next);
})
.catch(next);
}

我试过将 select 放在每个 limitsort 选项之前/之后。

如果我省略了 select,那么 post console 日志就像这样就好了;

{ _id: '589ddffeb4a1477fa04d632a',
author: '589ddffeb4a1477fa04d6326',
text: 'This is post two. It belongs to Matt too',
createdAt: 2,
expiresAt: 1000000000000000000,
university: 'University of Aberdeen',
voteCount: 3,
uniOnly: false,
__v: 0,
categories: [ 'music' ],
votes: [],
commenters: [],
comments: [],
expired: false,
commentCount: 0,
id: '589ddffeb4a1477fa04d632a' }

随着 select 添加,我在主体中什么也得不到。错误返回为:

{ error: 'Cannot read property \'length\' of undefined' }

这里发生了什么?

谢谢

最佳答案

我认为您的选择中不需要分号。所以不是这个:

.select('_id, voteCount')

你的选择应该是这样的:

.select('_id voteCount')

至少我会根据docs这么说.

关于javascript - 为什么选择( Mongoose 查询)不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42163352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com