我正在构建我的第一个 NodeJS 应用程序,但我尝试创建的查询陷入了死胡同。
const userSchema = new Schema({
email:{
type: String,
},
friends: [{
name: String,
}],
name: {
type: String,
}
});
我的目标是从 friend 数组中的每个对象中检索每个名称,并将它们显示给用户。
我尝试过:(还有更多)
const friendNames = await User.find(
{_id: req.user._id},
{ friends: { name: String } }
)
const friendNames = await User.find(
{_id: req.user._id},
{ friends: { $elemMatch: { name: String } }}
)
const friendNames = await User.find(
{_id: req.user._id},
{ friends: { name: {$exists : true} } }
)
我认为这将是一个非常简单的查询,但我要么忽略了一些东西,要么完全误解了一个概念。这是我的第一个主要障碍。任何帮助或指导将不胜感激。
最佳答案
只需一个 find({ _id: req.user._id }, {friends: 1 })
就可以了。这是使用projection .
关于arrays - 查询 MongoDB 中的整个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48758480/