Mongodb:如何使用聚合框架仅返回嵌入式文档
这是文档结构,其中报价和投标是子文档。我使用mongoosejs作为ORMMongodb:如何使用聚合框架仅返回嵌入式文档,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 }, {
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'})代码>