【发布时间】:2021-03-17 20:01:19
【问题描述】:
我在将 MongoDB shell 查询重写为 JavaScript 时遇到问题。
这是一个有效的 shell 查询(它返回预期的对象):
db.decks.aggregate([
{$match: {_id: ObjectId('605072934f19160027b0c1a9')}},
{
$lookup: {
"from": "cards",
"localField": "cards",
"foreignField": "_id",
"as": "cards"
}
}
])
现在我尝试在我的 JS 代码中这样写:
const deck = await Deck.aggregate([
{$match: {"_id": `ObjectId(${id})`}},
{
$lookup: {
"from": "cards",
"localField": "cards",
"foreignField": "_id",
"as": "cards"
}
}
])
但$match 不匹配任何内容。我尝试了各种不同的引号。有和没有ObjectId。我看不出这里有什么问题。 Deck 是合适的模型(await Deck.findById(id) 工作正常)。
【问题讨论】:
-
我想有人有同样的问题stackoverflow.com/questions/32877064/…
-
谢谢@HoàngTrung,我以前找不到这个问题。有帮助!
标签: javascript node.js mongodb