【问题标题】:How do I use MongoDB aggregation to remove empty "" strings in value v array?如何使用 MongoDB 聚合删除 value v 数组中的空 "" 字符串?
【发布时间】:2020-04-21 11:30:21
【问题描述】:

我有以下 MongoDB 对象,我首先使用 $objectToArray$split 将它们转换为键值 k-v 对。如何从值 v 数组中删除空字符串 ""?谢谢!

{ 
    "_id" : ObjectId("5e9ecf782980434d78120a49"), 
    "data_kv" : [ { "k" : "U1", "v" : [ "", "", "University", "", "", "of", "", "", "Australia", "", "" ] } ] 
}
{   
    "_id" : ObjectId("5e9ecf7f2980434d78120a4a"), 
    "data_kv" : [ { "k" : "U2", "v" : [ "", "", "University", "of", "", "", "", "", "Australia", "", "" ] } ] 
}
{ 
    "_id" : ObjectId("5e9ecf8a2980434d78120a4b"), 
    "data_kv" : [ { "k" : "U3", "v" : [ "", "", "University", "", "", "of", "", "", "", "Sweden", "", "" ] } ] 
}

【问题讨论】:

    标签: arrays mongodb mongodb-query aggregation-framework


    【解决方案1】:

    你可以使用下面的聚合

    db.collection.aggregate([
      { $project: {
        data_kv: {
          $map: {
            input: "$data_kv",
            as: "kv",
            in: {
              k: "$$kv.k",
              v: {
                $filter: {
                  input: "$$kv.v",
                  cond: { $ne: ["$$this", ""] }
                }
              }
            }
          }
        }
      }}
    ])
    

    MongoPlayground

    【讨论】:

    • 谢谢@Ashh你的另一个好答案
    猜你喜欢
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    相关资源
    最近更新 更多