gpt4 book ai didi

node.js - Mongoose - 使用 `CastError: Cast to number failed` 时为 "$fieldName"

转载 作者:太空宇宙 更新时间:2023-11-04 00:01:22 26 4
gpt4 key购买 nike

我有以下 Mongoose 架构:

{
lastEdit: Number
translations: [{
submittedTimestamp: Number
...
}]
...
}

以及以下查询:

Model.findOne({
"translations.submittedTimestamp": { $lte: "$lastEdit" }
})

但是,我收到一条错误消息:CastError: Cast to number failed for value "$lastEdit"at path "subscribedTimestamp"for model "translations"

如果我插入一个静态数字而不是 $lastEdit(在本例中是 Unix 时间戳),则查询可以正常工作,这意味着它与我使用 的方式有关>“$lastEdit”。关于如何解决这个问题有什么建议吗?

最佳答案

您必须使用$expr

Model.find({
"$expr": {
"$gte": [
{ "$size": {
"$filter": {
"input": "$translations",
"cond": { "$lte": ["$$this.submittedTimestamp", "$lastEdit"] }
}
}},
1
]
}
})

关于node.js - Mongoose - 使用 `CastError: Cast to number failed` 时为 "$fieldName",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54585924/

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