mongodb - 如何从mongodb字段中的对象数组中检索部分对象

标签 mongodb mongoose mongodb-query

我有一个 Mongoose 模式 -

db.foo.insert({one:'a',friends:[{two:'b',three:'c'},{two:'d',three:'e'},{two:'f',three:'G'}]})

现在我想要的是两个只检索 friends 数组的 'two' 部分 那就是我想在 friends 数组中的每个对象中找到 two 的所有值的数组 这样的投影在 mongodb 中是否可能,输出看起来像 -

['b','d','f']

最佳答案

aggregate 就是你的答案

db.foo.aggregate({"$project" : {"two" : "$friends.two"}}).result

还有另一种方法(获取不同的值)

db.foo.aggregate([      
    {'$project': {  
                    union:{$setUnion:["$friends.two"]}
                 }
    }
]).result;

关于mongodb - 如何从mongodb字段中的对象数组中检索部分对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27606591/

相关文章:

mongodb - MongoEngine - 在转换为 json 时如何有效地引用列表字段

ruby - 将字符串 ID 与 BSON::ObjectId 进行比较

node.js - 正确检索和显示来自 Mongoose/MongoDB .find 方法的数据

node.js - 仅在 mongodb 聚合中返回具有最新子文档的文档

node.js - 如何通过 Node.js Express 从 Cloudinary 中删除图像?

mongodb - reshape 集合中的所有文档

mongodb - GoLang mgo - mgo.ErrNotFound for find(...).All(...)

javascript - 在预保存钩子(Hook)中获取 Mongoose 构造函数数据

mongodb - 根据状态过滤 mongoDb 中的结果

mongodb - 从子文档数组中查找数据时使用 $slice