簡體   English   中英

在 MongoDB 中有條件地申請和條件

[英]Conditionally apply and condition in MongoDB

我試圖根據傳遞的參數有條件地獲取數據。

參數是“房間”和“區域”

如果房間不等於“任何”,我想在房間的過濾器中添加條件。
如果面積不等於“全部”,我想在面積過濾器中添加條件。

exports.get_property_search = function (req, res) {
    var filter = [];
    if (req.params.area != "all")
        filter.push({ "area": req.params.area });
    if (req.params.room != "any")
        filter.push({ "roomQty": req.params.room });

    AddProperty.find({
        $expr:
        {
            $cond:
            {
                if: filter != [],
                then: {
                    $and: filter
                },
                else: {

                }
            }
        }
    }, function (err, addProperty) {
        if (err)
            res.send({ code: '500', message: err });
        res.send({ code: '200', data: addProperty });
    });
};

但是,這種情況不起作用,並且所有數據都返回了沒有任何過濾器的所有數據。

你在這里使用錯誤的語法。 這可以使用簡單的 javascript 代碼而不是使用聚合運算符來完成。

let filter = {}
  if (req.params.area !== "all") {
    filter.area = req.params.area
  }
  if (req.params.room !== "any") {
    filter.roomQty = req.params.room
  }

  AddProperty.find(filter).then((data) => {
    console.log(data)
  })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM