我有以下猫鼬模式:
{
lastEdit: Number
translations: [{
submittedTimestamp: Number
...
}]
...
}
以及以下查询:
Model.findOne({
"translations.submittedTimestamp": { $lte: "$lastEdit" }
})
但是,我收到一个错误消息,说CastError: Cast to number failed for value "$lastEdit" at path "submittedTimestamp" for model "translations"
。
如果我插入一个静态数字而不是$lastEdit
(在这种情况下是Unix时间戳),则查询工作正常,这意味着它与我使用"$lastEdit"
的方式有关。有关如何解决此问题的任何建议?
答案 0 :(得分:1)
您必须使用$expr
Model.find({
"$expr": {
"$gte": [
{ "$size": {
"$filter": {
"input": "$translations",
"cond": { "$lte": ["$$this.submittedTimestamp", "$lastEdit"] }
}
}},
1
]
}
})