2016-03-20 3 views
-1

私は私のmongo DBにこのデータを持っている:流星の集まり。 Mongoのデシベル

{ "_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()とモンゴコンソールからそれを取得します。

私は現在の所有者からのタスクが最初に来るコレクションを返すしたいと思います。

たとえば、 AngryRootとしてログインしている場合は、最初にAngryRootのタスクを表示し、次に他のユーザーから他のタスクを表示したい。私は集約を使う必要があると思う。このパッケージをインストール:meteorhacks:aggregate

私の試行はすべて失敗しました。できれば助けてください。 そして私が集計する必要のあるファイル:enter link description here(生の11枚目)。

は、私は流星の上にコマンドを持っていないが、あなたは間違いなくアグリゲーションパイプラインのステージのカップルを縫合することにより、この使用して集約フレームワークを行うことができ、私

答えて

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} 
    } 
]) 

これはレコードを印刷する必要があり

{ 
    "_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 
} 
+0

しかし、どのようにそれが良い流星に整理する(AngryRootは、現在のユーザがされると仮定した場合)?私はmeteorhacksを使うことができます:集約パッケージですが、私はそれをサーバー上でのみ使用できます。私はこれや方法のための新しいメソッドを作成する必要がありますか? –

+0

@МаксимРоманюк残念ながら、私は流星について何も知らないので何も示唆することはできません。しかし、私は集計をラップする別のメソッドを持つことは悪い考えではないと思います。 – Saleem