MongoDbではルックアップを実行できますか?私はイベントを私のMongoDbから取得する必要があります。イベントが特定のユーザーによって追加された関連ベットを持っている場合にのみ、コレクションにベットを追加したいと思います。特定の条件でルックアップを実行する方法
最初に、イベントに関連した賭けを得るためにMatch演算子と$ lookupを使用しましたが、問題は2番目の条件を定義する必要があります - 賭けのユーザ識別子は外部パラメータ(userId)の値と同じでなければなりません。
次に、コレクションではなく、結果を1つだけ追加する必要があります。そのため、私は$ projectを使用しました。助けてください。
私のコードはここに行く:
db.collection('events').aggregate([
{
$match: {
'isDeleted': false,
'leagueId': ObjectID(leagueId)
}
},
{
$lookup: {
from: "bets",
localField: "_id",
foreignField: "eventId",
as: "bets"
},
},
{
$project: {
_id: true,
home: true,
guest: true,
description: true,
result: true,
resultHome: true,
resultGuest: true,
startDate: true,
type: true,
specialPoints: true,
leagueStage: true,
createdDate: true,
updatedDate: true,
isDeleted: true,
isCalculated: true,
leagueId: true,
bet: { "$arrayElemAt": [ "$bets", 0 ] }
}
}