表单生成器(Form Builder)之查询同一表中两个字段相等的数据


  之前使用MySQL、MSSQL的时候经常会遇到这种情况:查询同一表中某两个字段相等的数据,也就是说业务中有这种需求。这不我们又遇到了,但是此时我们使用的是mongodb。在mongodb中不像MySQL、MSSQL中那么简单,据说可以使用$where实现,但是我不太喜欢这种方式,并且我们的存储结构是这样:表单生成器(Form Builder)之表单数据存储结构mongodb篇 (用户可以任意的添加字段),废了半天劲儿才弄出来,这里记录一下,下面看一下语句:

db.FormInstace.find({
  "FormItems.key":{$in:["1572493551001","1572493551006"]},
  $expr: {
    $eq: [
      { $arrayElemAt: ["$FormItems.value", {"$indexOfArray":["$FormItems.key","1572493551001"]}] },
      { $arrayElemAt: ["$FormItems.value", {"$indexOfArray":["$FormItems.key","1572493551006"]}] },
    ]
  }
});

  "1572493551001","1572493551006"表示表中的两个字段,具体的含义可以查看:表单生成器(Form Builder)之伪造表单数据mongodb篇

  "FormItems.key":{$in:["1572493551001","1572493551006"]} 添加这个筛选条件的原因是:要比较两个字段,前提是两个字段都必须存在。

  这篇笔记好短啊!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM