arrays - 查询 MongoDB 中的整个对象数组

标签 arrays node.js mongodb mongodb-query

我正在构建我的第一个 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/

相关文章:

javascript - Mongoose - 使用 populate 方法后如何处理结果?

javascript - 为什么 Array.indexOf 找不到相同的对象

javascript - 在 NodeJS 中使用变换/双工流

javascript - 类型 'prop' 上不存在属性 'A | B'

algorithm - Memcache 驱逐监控系统

java - 存储在 mongodb 上的 YearMonth 字段无法解析回对象字段

javascript - 返回给定元素的所有数组索引

c++ - 引用在运行时确定大小的数组

php - 取消设置数组中的索引将它变成一个对象

javascript - 将 TypeORM 存储库注入(inject) NestJS 服务以进行模拟数据测试