我在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" : "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的任务,然后再显示其他用户的其他任务。我想我需要使用聚合。已安装此软件包:meteorhacks:aggregate。
我的所有尝试都失败了,如果可以,请帮助我。 还有一个我需要汇总的文件:enter link description here(11 on raw)。
感谢您花时间陪我
答案 0 :(得分:0)
我没有掌控流星,但你可以通过聚合管道中的几个阶段拼接使用聚合框架。
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
是当前用户)
{
"_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
}