gpt4 book ai didi

javascript - Mongo findOne 在数组里面

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

我有一份文档随 mongo 的 findOne() 返回。在该文档中(位置 id 为 2),我们有 items 数组。内部项目是好听的名字。目前,这会返回所有项目,而不仅仅是 nicename 匹配的项目。谢谢!

    Menu.findOne({location:'2', 'items.nicename':req.params.whatever}).exec()
.then(function(item) {
res.render('pages/menuitem', {'item':item});
}).catch(function(err) {
console.log(err);
});

最佳答案

当您的参数匹配时,Mongo find/findOne/aggregate 返回整个文档,包括子文档。所以你需要告诉 Mongo,嘿,既然你找到了我的文档,我真的只想要这些部分。这就是“投影”的用武之地。

Menu.findOne({location:'2'},{'items':{$elemMatch: {'nicename': req.params.whatever})

关于投影的事情是,一旦您开始构建投影,您需要告诉 mongo 您想要返回的所有键。例如,我知道您的结构中有“位置”,所以如果您还想返回位置,则需要执行以下操作

Menu.findOne({location:'2'},{
'location':1,
'items':{$elemMatch: {'nicename': req.params.whatever}
})

如果您需要 findOne 中的两个参数,请执行以下操作

Menu.findOne({location:'2','items.nicename':req.params.whatever},{
'location':1,
'items':{$elemMatch: {'nicename': req.params.whatever}
})

关于javascript - Mongo findOne 在数组里面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42404169/

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