Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB:如何查询集合的所有子文档_Mongodb - Fatal编程技术网

MongoDB:如何查询集合的所有子文档

MongoDB:如何查询集合的所有子文档,mongodb,Mongodb,我有一个集合users,每个用户对象都有一个名为purchases的字段,它是一个对象数组。用户对象如下所示: User: { ... purchases: [ { time: 2355645366, amount: 2000 }, { time: 2456456334, amount: 2000 }, { time: 2435645433, amount: 2000 }, ] } 如何在所有用户中查询所有购买,以及如何按

我有一个集合
users
,每个用户对象都有一个名为
purchases
的字段,它是一个对象数组。用户对象如下所示:

User:
{
    ...
    purchases: [
        { time: 2355645366, amount: 2000 },
        { time: 2456456334, amount: 2000 },
        { time: 2435645433, amount: 2000 },
    ]
}

如何在所有用户中查询所有购买,以及如何按字段(如
时间
)进行排序?我所期望的结果是一系列购买对象。

您可以使用聚合操作,这是一个非常方便的工具,适用于此类场景

db.users.aggregate({$unwind: '$purchases'},{$sort: {'purchases.time': 1}},{$group: {_id: 0, 'purchases': {$push: '$purchases'}}})
返回的文档将具有以下结构:

{ "_id" : 0, "purchases" : [...all users purchases sorted by time here...]}

5年后,他将进行测试并报告,有人说他直到今天还在测试。