が含まれている場合、私は、ドキュメントを次ていますMongoDBの集計プロジェクトのチェック配列が
{
_id : 21353456,
username : "xy",
text : "asdf",
comments : [
{
username : "User1",
text : "hi",
},
{
username : "User2",
text : "hi1",
},
{
username : "User3",
text : "hi2",
},
{
username : "User4",
text : "hi3",
}
]
}
を今私が集約し、プロジェクトに、ユーザー名、テキストやコメントを取得したいです。また、コメント配列に "User1"のユーザー名が含まれている場合は、論理値が必要です。私はこれを持っているが、うまくいかない。あなたが最初unwind
にコメントを必要とし、その後、少しトリックでgroup
を使用することになり、これを達成するために
db.posttest.aggregate(
[
{
$project:
{
username: 1,
text: 1,
comments : 1,
hasComment: { $eq: [ "comments.$.username", "User1" ] },
_id: 0
}
}
]
)
ありがとう、素晴らしい答え! – user6586661