sql >> データベース >  >> NoSQL >> MongoDB

Mongo $ lookupが左外側の結合である場合、一致しないドキュメントを除外するのはなぜですか?

    この動作は$lookupとは関係ありません 、これは、 $unwind 参照されるフィールドが欠落している、または空の配列であるドキュメントを省略します。

    profile.universitiesの場合でも、巻き戻されたドキュメントを保持するため は空の配列です。preserveNullAndEmptyArraysを設定できます。 trueへのオプション :

    db.users.aggregate([
        {
            $unwind: "$profile",
            $unwind: {
                path: "$profile.universities",
                preserveNullAndEmptyArrays: true
            }
        },
        {
            $lookup: {
                from: "universities",
                localField: "profile.universities._id",
                foreignField: "_id",
                as: "profile.universities"
            }
        },
        {
            $group: {
                _id: "$_id",
                universities: {
                    $addToSet: "$profile.universities"
                }
            }
        }
    ]).pretty()
    



    1. redisに挿入されたキーを取得する

    2. NoSQLのユースケース

    3. 一意のインデックスに違反するMongoDBドキュメントを挿入するときにエラーをキャッチするにはどうすればよいですか?

    4. javascriptからmongodbで内部クエリを渡す方法