iT邦幫忙

0

mongo條件查詢

  • 分享至 

  • xImage

請問我現在想要查符合 abc條件的資料
應該是
db.find({$and:[a,b,c]}) 這樣
不過這樣就變成我一定要三個條件都符合才查的到 少一個都不行
那這時候如果我想查只符合ab 或只符合a的條件 我知道只要db.find({$and:[a,b]})就好
但我想把它合在一起 是有辦法的嗎

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

3
dragonH
iT邦超人 5 級 ‧ 2019-12-15 18:54:15

阿就我你上個問題我回你的阿

收到前端的值

然後整理後

放到

db.find() 裡面

例如你整理完的結果是放到 query 裡面

那你去 search 時

就寫成

db.find({ $and: query })

就好

看更多先前的回應...收起先前的回應...

阿就我你我告訴你的阿 慘惹 看無

好難懂/images/emoticon/emoticon06.gif 盡力理解

我現在req.query 東西進來了
db.find({ $and: query })的 query裡面會是什麼東西呢dragonH

dragonH iT邦超人 5 級 ‧ 2019-12-16 09:30:00 檢舉

shrine90459

query 是要組的搜尋條件

monk 來舉例

假設要搜尋

價格大於 50

分類為 test

那組完會長

query = [{ price: { $gt: 50 } }, { type: 'test' }]

這樣

dragonH
請問我現在已經可以搜尋出來了
但是他現在一定要三個條件都達成才搜的出來
如下

  const query =[{"type":type},{"pet":pet},{"parking":car}]
  $and : query

下面是我自己嘗試的

  const query =[{"type":type},{"pet":pet},{"parking":car}]
  const query1 =[{"type":type},{"pet":pet}]
  const query2=[{"type":type}]
$or : [
  { $and : query  },{ $and : query1  },
  { $and : query2  }]

好像也不太行 他都只查得出 最後一個 $and :query 2 的條件
想問有甚麼方法是可以讓它 任意一個或兩個條件達成時搜尋呢
https://ithelp.ithome.com.tw/upload/images/20191218/20120704PciYgLyG21.png
如圖片 我勾透天只有透天 勾透天+可養寵物就出現這兩個的結果
感謝

dragonH iT邦超人 5 級 ‧ 2019-12-19 01:00:14 檢舉

shrine90459

我覺得你好像沒有看懂我的意思 /images/emoticon/emoticon21.gif

假設前端送過來的資料長這樣

{
    type: 'taofan',
    parking: true,
    happy: false
}

如果是我來寫

我會檢查送過來值的 key

有哪些是我會需要的

所以

happy 的這個值

就會被忽略

然後用我篩選過後的值

來組成一個 query 的 array

query 最後也就會是

[
    {
        type: 'taofan'
    },
    {
        parking: true,
    }
]

然後透過

xx.find({ $and: query }) //以 monk 為例

就能取得我要的

你舉的那個例子

我看不太出來有需要用到 $or

然後建議你不要再問題裡面再問其他問題

也不要每次都把發問時間拉這麼長

都不知道你到底是解決還是沒解決XD /images/emoticon/emoticon06.gif

dragonH
因為這裡看起來只有你比較會 想說在下面問比較快
然後如果我已經會了就不會問那麼多了QQQQQQQQQ

dragonH iT邦超人 5 級 ‧ 2019-12-19 01:52:45 檢舉

我會這樣說的意思是

在同個問題串問其他的問題

之後別人可能也沒辦法爬文

會有點可惜/images/emoticon/emoticon42.gif

0
阿展展展
iT邦好手 1 級 ‧ 2019-12-15 18:57:33
a|{$and[a,b]|$and:[a,b,c]

這樣的感覺?
你是要.... A 或是 AB 或是 ABC 嗎?
你所謂的合在一起 到底是什麼合在一起阿QQ

dragonH iT邦超人 5 級 ‧ 2019-12-15 19:00:14 檢舉

你這感覺我看不懂/images/emoticon/emoticon11.gif

/images/emoticon/emoticon25.gif討厭

我要發表回答

立即登入回答