私はmongoドキュメントのオブジェクト(これもオブジェクトです)の値を照会、ソート、フィルタリングする方法を見つけようとしています。文書構造は、動的なキーでオブジェクト1000を含むことができ、mongodbのオブジェクトの値を照会、ソート、フィルタリングする方法は?
{
_id: '',
uid: '12345',
objects:{
dkey1: {
prop1: val1,
prop2: val2,
...
},
dkey2: {
prop1: val1,
prop2: val2,
...
},
dkey3: {
prop1: val1,
prop2: val2,
...
},
dkey4: {
prop1: val1,
prop2: val2,
...
}
...
}
}
objects
特性です。 Theryはハッシュベースのユニークキーです。これらのオブジェクトを取得すると、私はすべてを返すことを望んでいません。私は彼らが別のドキュメントからのものである場合、それができるようにクエリ、並べ替え、制限したい。たとえば、prop1 = val1
と指定した場合、prop2
の制限10
の場合、prop1
がprop2
でソートされたobjects
の最初の10個のサブオブジェクトが返されます。
普通のfind
ではできないと思います。ですから、私は集約フレームワークを試しています。第1ステージではuid
で試合を行います。次?私はそこで混乱している。動的なキーを持つオブジェクトの代わりに、オブジェクトの配列の場合は、$unwind
を実行し、後の段階で、内部プロパティ(prop1
、prop2
...)のフィルタを実行して、問題は、オブジェクトの配列ではないということです。 objects
オブジェクトの値をオブジェクトの配列に変換する方法があれば、より簡単になります。私は道を探していたが、解決策を見つけることができなかった。
私は構造が良くないことを知っていて、スキーマを変更すると私を助けます。しかし、私は状況にある、私は今それを変更することはできません。 objects
の値をオブジェクトの配列に変換する方法はありますか?あるいは、他のいくつかの集約パイプラインステージで同じ結果を達成する異なる方法がありますか?