MongoDBアグリゲートで$redactを使用していますか?
$ redactは、ドキュメント自体に格納されている情報に基づいて、ドキュメントの内容を制限します。 $condを$redactと一緒にまとめて使用できます。ドキュメントを使用してコレクションを作成しましょう-
> db.demo546.insertOne({"Value1":10,"Value2":20});{ "acknowledged" : true, "insertedId" : ObjectId("5e8e263f9e5f92834d7f05d7") } > db.demo546.insertOne({"Value1":40,"Value2":30,Value3:50});{ "acknowledged" : true, "insertedId" : ObjectId("5e8e26549e5f92834d7f05d8") } > db.demo546.insertOne({"Value1":100,"Value2":200,Value3:null});{ "acknowledged" : true, "insertedId" : ObjectId("5e8e26619e5f92834d7f05d9") } > db.demo546.insertOne({"Value1":400,"Value2":1000,Value3:null});{ "acknowledged" : true, "insertedId" : ObjectId("5e8e26e09e5f92834d7f05da") } > db.demo546.insertOne({"Value1":400,"Value2":200,Value3:null});{ "acknowledged" : true, "insertedId" : ObjectId("5e8e26f59e5f92834d7f05db") } > db.demo546.insertOne({"Value1":400,"Value2":1000,Value3:60});{ "acknowledged" : true, "insertedId" : ObjectId("5e8e27159e5f92834d7f05dc") }
find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo546.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e8e263f9e5f92834d7f05d7"), "Value1" : 10, "Value2" : 20 } { "_id" : ObjectId("5e8e26549e5f92834d7f05d8"), "Value1" : 40, "Value2" : 30, "Value3" : 50 } { "_id" : ObjectId("5e8e26619e5f92834d7f05d9"), "Value1" : 100, "Value2" : 200, "Value3" : null } { "_id" : ObjectId("5e8e26e09e5f92834d7f05da"), "Value1" : 400, "Value2" : 1000, "Value3" : null } { "_id" : ObjectId("5e8e26f59e5f92834d7f05db"), "Value1" : 400, "Value2" : 200, "Value3" : null } { "_id" : ObjectId("5e8e27159e5f92834d7f05dc"), "Value1" : 400, "Value2" : 1000, "Value3" : 60 }
以下は、MongoDB集約を使用した$redactで$existsへのクエリです-
> db.demo546.aggregate( { "$redact": { "$cond": { "if": { "$and": [ { "$lt": [ "$Value1", "$Value2" ] }, { "$ifNull": [ "$Value3", false ] } ] }, "then": "$$KEEP", "else": "$$PRUNE" } } } );
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e8e27159e5f92834d7f05dc"), "Value1" : 400, "Value2" : 1000, "Value3" : 60 }
-
MongoDB updateOne()とinsertOne()の使用
MongoDB insertOne()はドキュメントをコレクションに挿入しますが、updateOne()はクエリフィルターに基づいてコレクション内の単一のドキュメントを更新します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo735.insertOne({id:1,Name:"Chris"}); { "acknowledged" : true, "insertedId" : ObjectId("5ead51b657bb72a10bcf06
-
MongoDB Aggregate groupの複数の結果?
複数の結果を集約するには、MongoDBで$groupを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo765.insertOne( ... ... { ... Name:"John", ... "Category":"ComputerScience", ... "SubjectName":"MongoDB&quo