【发布时间】:2018-03-01 15:50:52
【问题描述】:
我使用 mongo server 3.6 和 php 作为后端语言。 此外,我正在使用最新的 php-mongo 库来与新更新的驱动程序对话。
我有一个包含 1000 万条记录的集合,如下所示:
[
{
"did": "123456",
"did_usage": "1",
"did_timestamp": "15012"
},
{
"did": "4567811",
"did_usage": "1",
"did_timestamp": "15013"
},
{
"did": "46465464",
"did_usage": "2",
"did_timestamp": "15014"
},
{
"did": "7894446",
"did_usage": "2",
"did_timestamp": "15015"
},
{
"did": "65646131",
"did_usage": "3",
"did_timestamp": "15016"
},
{
"did": "7989464",
"did_usage": "2",
"did_timestamp": "15017"
},
{
"did": "651651664",
"did_usage": "1",
"did_timestamp": "15018"
}.......
]
现在我想找到一个使用次数最少且时间戳最少的唯一文档。
到目前为止,我已经使用以下方法找到了单个唯一文档:
$sample = array('$sample' => array('size' => 1));
$pipeline = array($match, $group, $project, $sample);
$cursor = $collection->aggregate($pipeline);
我需要一些关于$group 的帮助。
这个我试过了
$group = array('$group' => array('_id' => '$did_usage', 'did_usage_timestamp' => array('$min' => '$did_usage_timestamp')));
但这并没有按预期工作。
【问题讨论】:
-
版主注意:请不要破坏您的帖子。一旦您发布问题,它们就属于该网站及其用户。即使它不再对您有用,它也可能对将来的某人有所帮助。回答者也会努力写下他们的答案,如果您从帖子中删除了内容,这将不再有用。另外,请注意,通过在 Stack Exchange 网络上发布,您已授予 SE 分发该内容的不可撤销的权利(根据 CC BY-SA 3.0 许可)。根据 SE 政策,任何破坏行为都将被撤销。