ツイートのコレクションがあり、コレクション内で最も多くツイートするユーザー ID を見つけたいと考えています。だから私がしたことはgroup、最初にそれからsort:
db.tweets.group( { key: {"user.id": 1}, reduce: function (curr, result) { result.total += 1; }, initial: {total: 0} }).sort({total: -1})
ただし、mongo shell は次のように不平を言っています。
TypeError: db.tweets.group({key:{'user.id':1}, reduce:function (curr, result) {result.total += 1;}, initial:{total:0}}).sort({total:-1}) is not a function (shell):1
mongodb docを参照しましたが、私の構文はsort正しいはずだと思いましたか? また、 の違いはaggregate何ですか? 私がやりたいことは、によって行われた方が良いaggregateですか?
sortがないと、コマンドdb.tweets.group( { key: {"user.id": 1}, reduce: function (curr, result) { result.total += 1; }, initial: {total: 0} })は次のようになるため、ここで少し混乱しています。{
"user.id" : 1477500938,
"total" : 1
}
どちらが正しいように見え、これも実行可能db.tweets.group( { key: {"user.id": 1}, reduce: function (curr, result) { result.total += 1; }, initial: {total: 0} }).sort()です。user.idtotal