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 }热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短