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

mongodbでの編集は私にはわかりにくいようです

    $redact ステージはルートドキュメントとそのフィールドから始まり、そのドキュメントが$$DESCENDの条件を満たす場合にのみ開始されます 、そのドキュメントに含まれるサブドキュメントを調べます。つまり、$ redactがドキュメントで最初に行うことは、これを調べることです。

    {
        "_id" : ObjectId("50b59cd75bed76f46522c34e"),
        "student_id" : 0,
        "class_id" : 2,
        "scores" : [] // Some array. I will look at this later.
    }
    

    typeも見つかりません ここにフィールドがあるので、$eq: [ "$type" , "exam" ] は偽です。条件が偽の場合、$ redactに何をするように指示しましたか? else: "$$PRUNE" 、したがって、サブドキュメントが検査される前に、ドキュメント全体が整理されます。

    回避策として、$typeかどうかをテストします "exam"のいずれかです または存在しません。実用的な解決策を明示的に求めていなかったので、これを行う方法を理解するための演習として残しておきます。




    1. Pythonフラスコアプリケーションでのパッケージの相対インポート

    2. Spring-Data-MongoDBでオブジェクトを検証するにはどうすればよいですか?

    3. MongoDBが機能していません。エラー:dbpath(/ data / db)が存在しません。

    4. MongoDBページネーションの範囲クエリ