請問我現在想要查符合 abc條件的資料
應該是
db.find({$and:[a,b,c]}) 這樣
不過這樣就變成我一定要三個條件都符合才查的到 少一個都不行
那這時候如果我想查只符合ab 或只符合a的條件 我知道只要db.find({$and:[a,b]})就好
但我想把它合在一起 是有辦法的嗎
阿就我你上個問題我回你的阿
收到前端的值
然後整理後
放到
db.find()
裡面
例如你整理完的結果是放到 query 裡面
那你去 search 時
就寫成
db.find({ $and: query })
就好
阿就我你我告訴你的阿 慘惹 看無
好難懂 盡力理解
我現在req.query 東西進來了
db.find({ $and: query })的 query裡面會是什麼東西呢dragonH
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 的條件
想問有甚麼方法是可以讓它 任意一個或兩個條件達成時搜尋呢
如圖片 我勾透天只有透天 勾透天+可養寵物就出現這兩個的結果
感謝
呃
我覺得你好像沒有看懂我的意思
假設前端送過來的資料長這樣
{
type: 'taofan',
parking: true,
happy: false
}
如果是我來寫
我會檢查送過來值的 key
有哪些是我會需要的
所以
happy
的這個值
就會被忽略
然後用我篩選過後的值
來組成一個 query 的 array
query 最後也就會是
[
{
type: 'taofan'
},
{
parking: true,
}
]
然後透過
xx.find({ $and: query }) //以 monk 為例
就能取得我要的
你舉的那個例子
我看不太出來有需要用到 $or
然後建議你不要再問題裡面再問其他問題
也不要每次都把發問時間拉這麼長
都不知道你到底是解決還是沒解決XD
dragonH
因為這裡看起來只有你比較會 想說在下面問比較快
然後如果我已經會了就不會問那麼多了QQQQQQQQQ
我會這樣說的意思是
在同個問題串問其他的問題
之後別人可能也沒辦法爬文
會有點可惜
a|{$and[a,b]|$and:[a,b,c]
這樣的感覺?
你是要.... A 或是 AB 或是 ABC 嗎?
你所謂的合在一起 到底是什麼合在一起阿QQ