にusers
を入力するためにMongoDB集計を使用したいと思います。 $lookup
演算子を使用してcreatedBy
を入力するために簡単に使用できます。集計の集約クエリ
質問user
のコメントに集計するために、$each
演算子を集計などで使用する方法がありますか?
私はMongo 3.2で試しましたが、3.4のようなものの新しい機能になると読んだのでしょうか? $unwind
と$groups
(これに成功しました)と同様のものを使用してエスケープして、クエリがスパゲッティコードにならないようにします。
ユーザー:
{
"_id" : ObjectId("582c31d4afd9252c8515a88b"),
"fullName": "test1"
},
{
"_id" : ObjectId("582c3db0afd9252c8515a88d"),
"fullName": "test2"
}
と記事:
{
"_id" : ObjectId("5829cac7e9c0994d3db718f8"),
"imgUrl": "images/test.jpg",
"createdBy": ObjectId("582c31d4afd9252c8515a88b"),
"comments": [
{
"_id" : ObjectId("5829cab8e9c0994d3db718f7"),
"content": "blabla",
"user": ObjectId("582c31d4afd9252c8515a88b")
}
]
}
予想される出力:
{
"_id" : ObjectId("5829cac7e9c0994d3db718f8"),
"imgUrl": "images/test.jpg",
"createdBy": ObjectId("582c31d4afd9252c8515a88b"),
"comments": [
{
"_id" : ObjectId("5829cab8e9c0994d3db718f7"),
"content": "blabla",
"user": {
"_id" : ObjectId("582c31d4afd9252c8515a88b"),
"fullName": "test1"
}
}
]
}
を使用するためのMongoDBの3.2.8以降のバージョンを持っていることを確認してください。あなたは詳細を教えていただけますか? – styvane
@Styvaneフィールド 'user'は' users'コレクションのすべてのフィールドで上書きしたい "FK"のようなものです。 これは私が望む結果です... https://postimg.org/image/3n9bb9u0p/ –
あなたの質問に[編集リンク](http://stackoverflow.com/posts/40736869/edit)してください期待される出力を追加する(画像ではない文書) – styvane