表單生成器(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