之前使用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"]} 添加這個篩選條件的原因是:要比較兩個欄位,前提是兩個欄位都必須存在,
這篇筆記好短啊!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/174105.html
標籤:NoSQL
