Mongodb 流星聚集。蒙戈数据库
我的mongo db中有以下数据:Mongodb 流星聚集。蒙戈数据库,mongodb,meteor,aggregation-framework,Mongodb,Meteor,Aggregation Framework,我的mongo db中有以下数据: { "_id" : "uhNTGacKPbnykv99S", "text" : "Task1", "createdAt" : ISODate("2016-03-20T10:29:59.669Z"), "owner" : "RE349TrQXoBm32mbr", "username" : "AngryRoot", "private" : false, "checked" : false } { "_id" : "PsX7ZvyDoD26Kr78X", "text
{ "_id" : "uhNTGacKPbnykv99S", "text" : "Task1", "createdAt" : ISODate("2016-03-20T10:29:59.669Z"), "owner" : "RE349TrQXoBm32mbr", "username" : "AngryRoot", "private" : false, "checked" : false }
{ "_id" : "PsX7ZvyDoD26Kr78X", "text" : "Task2", "createdAt" : ISODate("2016-03-20T10:30:01.598Z"), "owner" : "RE349TrQXoBm32mbr", "username" : "AngryRoot", "private" : false, "checked" : false }
{ "_id" : "mXpPWJ93GjugNCyME", "text" : "Task3", "createdAt" : ISODate("2016-03-20T10:30:15.899Z"), "owner" : "FbcQxF9q5a3t3LG9i", "username" : "CandyOgre", "private" : false, "checked" : false }
{ "_id" : "WciNvRpZNAeiHNGhz", "text" : "Task4", "createdAt" : ISODate("2016-03-20T10:30:18.785Z"), "owner" : "FbcQxF9q5a3t3LG9i", "username" : "CandyOgre", "private" : false, "checked" : false }
使用db.tasks.find()
从mongo控制台获取它
我想返回集合,其中来自当前所有者的任务将排在第一位
比如说。如果我以AngryRoot身份登录,我希望首先显示AngryRoot的任务,然后显示其他用户的其他任务。我想我需要使用聚合。已安装此软件包:
我所有的尝试都失败了,如果可以的话,请帮助我。
还有一个我需要汇总的文件:(在11 raw上)
感谢您为我花费时间我对meteor没有控制权,但您完全可以使用聚合框架通过在聚合管道中缝合两个阶段来实现这一点
db.tasks.aggregate([
// project a field showing if current user is owner
{$project:
{text:1, createdAt:1, owner:1, username:1, private:1, checked:1, current:
{$eq: ["$username", "AngryRoot"]}
}
},
// Sort stage: Brings documents on top with current = true
{$sort:
{current:-1}
},
// Optional!. Remove field name 'current' induced in first stage
{$project:
{text:1, createdAt:1, owner:1, username:1, private:1, checked:1}
}
])
这应该打印记录(假设AngryRoot
是当前用户)
但如何更好地组织在流星?我可以使用meteorhacks:aggregate包,但我只能在服务器上使用它。我应该为此或如何创建新方法吗?@Мааааааааааааааааа。但我想用一个单独的方法包装聚合并不是一个坏主意。
{
"_id" : "uhNTGacKPbnykv99S",
"text" : "Task1",
"createdAt" : ISODate("2016-03-20T10:29:59.669+0000"),
"owner" : "RE349TrQXoBm32mbr",
"username" : "AngryRoot",
"private" : false,
"checked" : false
}
{
"_id" : "PsX7ZvyDoD26Kr78X",
"text" : "Task2",
"createdAt" : ISODate("2016-03-20T10:30:01.598+0000"),
"owner" : "RE349TrQXoBm32mbr",
"username" : "AngryRoot",
"private" : false,
"checked" : false
}
{
"_id" : "mXpPWJ93GjugNCyME",
"text" : "Task3",
"createdAt" : ISODate("2016-03-20T10:30:15.899+0000"),
"owner" : "FbcQxF9q5a3t3LG9i",
"username" : "CandyOgre",
"private" : false,
"checked" : false
}
{
"_id" : "WciNvRpZNAeiHNGhz",
"text" : "Task4",
"createdAt" : ISODate("2016-03-20T10:30:18.785+0000"),
"owner" : "FbcQxF9q5a3t3LG9i",
"username" : "CandyOgre",
"private" : false,
"checked" : false
}