iT邦幫忙

0

nodejs後端篩選mongodb資料

https://ithelp.ithome.com.tw/upload/images/20191213/20120704gvhcKBQ17N.jpg

請問一下如果後端render資料有辦法做成這種效果嗎

router.get('/townhouse', function(req, res,next){
  Article.find({"type":"透天"},function(err, article){
      res.render('house', {
        article:article,
      });

  });
});
router.get('/rent4000',(req,res)=>{
  Article.find({"rent":{$lt:4000}},function(err, article){
    res.render('house', {
      article:article,
    });
    });

});

請問各位 我現在只能一次篩選一個條件如上面
想要多條件的話應該怎麼做呢 比如說上面變成 type:'透天' & rent:'4000'

1 個回答

1
dragonH
iT邦大師 1 級 ‧ 2019-12-13 15:16:00
Article.find({ rent: { $lt: 4000 }, type: '透天' })

上面的 code 我是用猜的

你是用哪個 module

mongoose 嗎

我個人是比較常用 monk

monk 的話則是可以

collection.find({ $and: [{ rent: { $le: 4000 }}, { type: '透天' }])

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

dragonH
對我是用mongoose 但我是想要做成兩個input 一個type一個rent
兩個都選可以變成 type & rent

Article.find({ rent: { $lt: 4000 }, type: '透天' })
這樣一個是寫在同一個input裡面..?

dragonH iT邦大師 1 級 ‧ 2019-12-13 15:46:30 檢舉

你的 input 是什麼意思

dragonH
比如說我上面圖片 更新時間:'本日最新'
工作經驗:'1~3年' 學歷要求:'專科' 這樣應該算選取三個input吧
然後按查詢後他就會變成 本日最新 & 1~3年 & 專科 的資料

dragonH iT邦大師 1 級 ‧ 2019-12-13 17:14:38 檢舉

喔喔

你說的這些是前端的東西啊

最後到後端應該會長成

{
    exp: 'xxx',
    time: 'xxx'
}

之類的

然後你後端整理完 data 後

整理成 object 塞到 Article.find()

如果他真的是像我說的那樣用

si=1&da=1&ex=3~5&gr=8&fs=1&page=1
si=1&da=1&ex=3~5&gr=16&wk=8&fs=1&page=1dragonH
這是我看到他的網址
如果我要從前端去改 那後端router的部分要如何接收然後改變網址呢
比如說我篩選後網址會變成 type=''&rent=''

dragonH iT邦大師 1 級 ‧ 2019-12-13 22:38:48 檢舉

如果我要從前端去改 那後端router的部分要如何接收然後改變網址呢

我實在是越來越看不懂你想問的東西/images/emoticon/emoticon06.gif

如果你後端要接這些值

可以從 req.query 取得

我要發表回答

立即登入回答