私はモンゴーのコレクションを持っています。私のコレクションは次のように考えることができます:何千ものmongodb文書内で計算を行う最も効率的な方法は何ですか?
{
"kwId" : "123445",
"p1": "15"
"p2": "25",
"date": "2017-01-28"
}
{
"kwId" : "123446",
"p1": "25"
"p2": "30",
"date": "2017-01-28"
}
{
"kwId" : "123445",
"p1": "35"
"p2": "40",
"date": "2017-01-27"
}
{
"kwId" : "123446",
"p1": "30"
"p2": "50",
"date": "2017-01-27"
}
私は約44kのドキュメントを持っています。たとえば、2017-01-28と2017-01-27のように、同じkwIdで日付が異なる文書のp1とp2の値の差を求めたいとします。結果の例:
{
"kwId" : "123445",
"p1": "20"
"p2": "15",
}
{
"kwId" : "123446",
"p1": "5"
"p2": "20",
}
これを行う最も効率的な方法は何ですか?私はPHPを使用しています。私が試したことは、指定された日付のすべてのドキュメントを取り出し、PHPの違いを計算することです。かなり遅かったです。
https://docs.mongodb.com/manual/reference/method/db.collection.aggregate/ – Lucero
少なくとも、あなたが 'p1'と' p2'データ型を '文字列ではなく数値です。 – chridam