所需的輸出可能只是被合計產生:
在C#
db.collection.aggregate([
{$match : { empId : '999', 'empActivity.Stamp' : { $lte : ISODate("2015-01-09T12:33:39.927Z")} }},
{$unwind : '$empActivity'},
{$match : { empId : '999', 'empActivity.Stamp' : { $lte : ISODate("2015-01-09T12:33:39.927Z")} }},
{$group: { _id: '$empId', empActivity: { $addToSet: '$empActivity' }}}
])
:
var args = new AggregateArgs
{
Pipeline = new List<BsonDocument>
{
BsonDocument.Parse("{$match : { empId : '999', 'empActivity.Stamp' : { $lte : ISODate('2015-01-09T12:33:39.927Z')} }}"),
BsonDocument.Parse("{$unwind : '$empActivity'}"),
BsonDocument.Parse("{$match : { empId : '999', 'empActivity.Stamp' : { $lte : ISODate('2015-01-09T12:33:39.927Z')} }}"),
BsonDocument.Parse("{$group: { _id: '$empId', empActivity: { $addToSet: '$empActivity' }}}"),
}
};
var result = collection.Aggregate(args).ToList();
看看聚合框架。標準查詢和投影將只匹配第一個元素。當你有更多的元素匹配時,你需要聚合框架。 StackOverflow上的很多例子。 –
@NeilLunn再次感謝您的幫助,以及我瞭解的聚合框架,但我想知道我是否可以通過查詢做同樣的事情。聚合框架性能如何明智? – Neville