在NODE项目的mongoose find()方法中传递对象

时间:2018-10-06 08:18:11

标签: mongoose

我有一个带有查询字符串的URL,如下所示: http://localhost:3000/books?title=Java

在我的Express GET方法中,我试图生成一个 使用query-string(title=Java here)过滤查询对象,如下所示

app.get('/', function (req, res, next) {
   for (var prop in req.query) {
        if (req.query.hasOwnProperty(prop)) {

            var filterObject = {};

            if (req.query.title != "") {
                filterObject["title"] = req.query.title;
            }

            const query = Book.find(filterObject);

            query.exec(function (err, someValue) {
                if (err) return next(err);
                res.send(someValue);
            });         
       }
   }
})

替换时的场景:const query = Book.find(filterObject);

i)const query = Book.find({"title":"Java"}),效果很好

ii)const query = Book.find(filterObject),返回空数组

iii)const query = Book.find(JSON.stringify(filterObject)),抛出 ObjectParameterError error

我正在使用的Mongoose版本是^5.3.1

0 个答案:

没有答案