ツイートのコレクションがあり、コレクション内で最も多くツイートするユーザー 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.id
total