Mongodb:如何使用聚合框架仅返回嵌入式文档

Mongodb:如何使用聚合框架仅返回嵌入式文档,mongodb,mongoose,aggregation-framework,Mongodb,Mongoose,Aggregation Framework,这是文档结构,其中报价和投标是子文档。我使用mongoosejs作为ORM var user = { name : 'polk', offers: [{ title: '1', tags: ['a', 'b', 'c'], bids: [{ _id: 1 name: 'jose', age: 18 }, {

这是文档结构,其中报价和投标是子文档。我使用mongoosejs作为ORM

var user = {
    name : 'polk',
    offers: [{
        title: '1',
        tags: ['a', 'b', 'c'],
        bids: [{
            _id: 1      
            name: 'jose', 
            age: 18
        }, {
            _id: 2
            name: 'carlos', 
            age: 19
        }]
    },{
        title: '2',
        tags: ['d', 'e', 'f'],
        bids: [{
            _id: 3
            name: 'gomes', 
            age: 21
        }, {
            _id: 4
            name: 'fernando', 
            age: 31
        }]
    }]
};
我需要什么?本分文件:

{
    _id: 4
    name: 'fernando', 
    age: 31
}

使用?聚合框架。

使用聚合框架,您可以按如下操作:

db.collection.aggregate(
    {$unwind : "$offers"},
    {$unwind : "$offers.bids"},
    {$match : {"offers.bids._id" : 4}},
    {$project : {_id : "$offers.bids._id", 
                 name : "$offers.bids.name", 
                 age : "$offers.name.age"
    }}
)

你好非常感谢!我这样做:
db.registers.aggregate({$match:{u id:ObjectId(“52d93f9331065a8e76061646”)},{$unwind:'$offers'},{$unwind:'$offers.bids'},{$match:{'offers.bids.name:''fernando'},{$project:{'u id':0,'bid':'$offers.bids'})