8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

将字符串转换为双精度数并与对象数组进行比较

RandomInsano 1月前

20 0

这是我的 mongo 样本集合,{ \'_id\' : ObjectId(\'62aeb8301ed12a14a8873df1\'),\'Fields\' : [ { \'FieldId\' : \'name\', &...

这是我的 mongo 样本集合,

{
   "_id" : ObjectId("62aeb8301ed12a14a8873df1"),
   "Fields" : [ 
    {
        "FieldId" : "name",
        "Value" : [ "test_123" ]
    }, 
    {
        "FieldId" : "mobile",
        "Value" : [ "123" ]
    }, 
    {
        "FieldId" : "amount",
        "Value" : [ "300" ]
    }, 
    {
        "FieldId" : "discount",
        "Value" : null
    }
  ]
 }

在这里我想要获得匹配的记录,例如 \' Fields.FieldId \' 应该等于 \' amount \' 并且 \' Fields.Value.0 \' 应该 大于 0 或者其他给定的值。

请注意以下几点,

  • \' Fields.Value \' 也可能为空
  • 有时某些字段也可能不会出现在数组中

我尝试过以下方法,但没有效果,

db.form.aggregate([
{
  $match:
  {
    {
       $expr: {
          $ne: [
             { $filter: { 
                input: '$Fields', 
                  cond: { if: {$eq:["$$this.FieldId", "amount"]}, 
                          then:{$gte: [{$toDouble: "$$this.Value.0"}, 0]} }
                  } 
               }, []
           ]
         }
      }
    }
}])

我不想使用 $project 或 $addFields。我只想进行直接 $match 查询。如果可以的话,请给我建议。

提前致谢,Mani

帖子版权声明 1、本帖标题:将字符串转换为双精度数并与对象数组进行比较
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由RandomInsano在本站《mongodb》版块原创发布, 转载请注明出处!
最新回复 (0)
    1. p0

    2. p1

    3. p2

    db.collection.aggregate([
      {
        $match: {
          $expr: {
            $ne: [
              {
                $filter: {
                  input: "$Fields",
                  cond: {
                    $and: [
                      {
                        $eq: [
                          "$$this.FieldId",
                          "amount"
                        ]
                      },
                      {
                        $gte: [
                          {
                            $toDouble: {
                              $first: "$$this.Value"
                            }
                          },
                          0
                        ]
                      }
                    ]
                  }
                }
              },
              []
            ]
          }
        }
      }
    ])
    

    演示@Mongo Playground

返回
作者最近主题: