簡體   English   中英

根據字段值在mongodb中搜索數據

[英]Search data in mongodb according to field values

我正在使用mongodb和node.js。 在我的數據庫中,我有6個字段

  1. 出價
  2. 顏色(數組)
  3. 大小(數組)
  4. cat_id
  5. sub_cat_id

一切正常。 現在我想在代碼中添加過濾器。 在過濾器區域中,我已添加所有字段。 用戶選擇了多種顏色和大小,因此它將以數組格式出現,但是大多數時候用戶不會選擇顏色選項或大小選項,此時字段值變為空白,因此我的過濾器不會從數據庫中獲取任何結果。 所以我想刪除顏色或大小字段,如果在搜索過程中值為空。 我試過下面的代碼,但它不起作用。

var catId     = new Array();
var sort      = saveFilterSort.sort;
var filter    = req.body;

if(req.body.catId){
  catId.push("category_id:"+req.body.catId);
}

if(req.body.subcatid){
  catId.push("sub_category_id:"+req.body.subcatid);
}

if(req.body.minprice){
  catId.push("price:{$gt:"+req.body.minprice+"}");
}

if(req.body.maxprice){
 catId.push("price:{$lt:"+req.body.maxprice+"}");
}

if(req.body.color){
  catId.push("color:{$in:"+req.body.color+"}");
}

if(req.body.size){
  catId.push("attribute:{$in:"+req.body.size+"}");
}

var finalCat = catId.join(',');

console.log(finalCat);
console.log(catId);


if((filter) && (sort)){ 
    Product.find(
    {
      brand_id:bid, finalCat
    },
    function(error,fetchallFeatProds)
    {
      console.log('#######################');
      console.log(fetchallFeatProds);
      console.log('#######################');
      callback(error,fetchallFeatProds);

    }).sort( {_id:-1,price:-1} );

該代碼不起作用。 請幫我。

貓鼬找到原型處理json,而不是字符串

var query     = {brand_id:bid};
var sort      = saveFilterSort.sort;
var filter    = req.body;

if(req.body.catId){
  query.category_id = req.body.catId;
}

if(req.body.subcatid){
  query.sub_category_id = req.body.subcatid;
}

if(req.body.minprice){
 query.price = {$gt:req.body.minprice};
}

if(req.body.maxprice){
  query.price = {$lt:req.body.maxprice};
}

if(req.body.color){
 query.color = {$in:req.body.color};
}

if(req.body.size){
  query.attribute = {$in:req.body.size};
}


if((filter) && (sort)){ 
  Product.find(query, ...

暫無
暫無

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

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