CNode

mongoose find 可选查询

问答
Ccllgeek发布于9 年前最后回复9 年前12 回复4810 浏览0 收藏
Library.find({category:category,subCategory:subCategory},(err,library)=>{
      if(err){
        console.log(err);
      }
      res.json({library})
    })********

上面 的代码 如果我想 subCategory 前端没传我就不查询这个字段,传了就查询 怎么写呢 ,谢谢各位了 我想到的是之前在外面加一层判断

if(subCategory){
  ....
}else{
  ...
}

但这样有点别扭啊

查看回复

回复 (12)

G
godghdai#1·9 年前

var where={category:"abc"},subCategory="343"; console.dir((subCategory&&(where["subCategory"]="abc"),where));

T
Torres5000#2·9 年前

用正则啊

N
nnliang#3·9 年前

三元运算符即可

C
cllgeek#5·9 年前
引用 Torres5000用正则啊

@Torres5000 怎么正则

M
Matrixbirds#6·9 年前

试试query.method?

M
Matrixbirds#7·9 年前

在schema里扩展

LibrarySchema.query.andCategory = function (category) {
  if (category) return this.where({ category });
  return this;
}
LibrarySchema.query.andSubCategory = function (subCategory) {
  if (subCategory) return this.where( { subCategory } );
  return this;
}
Library.find().andCategory(category).andSubCategory(subCategory).then(result => {
   // handle record
});
C
cllgeek#8·9 年前

没人来解答 ^_^

X
xiaoyu311#9·9 年前

我会

D
derams#10·9 年前

e

C
cllgeek#11·9 年前
引用 xiaoyu311我会

@xiaoyu311 求解答啊

C
cllgeek#12·9 年前

@Matrixbirds 谢谢,

参与回复
登录后即可参与回复。登录