有关filter查询的mongodb本机驱动程序问题
我无法使用查询mongodb。
我不知道是否可以详细说明正在发送一个对象的方法,但是被拒绝或有时候filter被清空。
它总是返回一个错误:
MongoError: query selector must be an object
查询的input是:
{ filter: 'f', limit: '5', page: '1', sort: '-posted' }
我的服务器路线:
exports.findAll = function(req, res, next) { var locals = {}, section = req.params.section, query = req.query, filter = {}; if(query.filter) { filter = query.filter.replace(/"(\w+)"\s*:/g, '$1:'); filter = filter.replace(/["]/g, "'"); } console.log(filter); delete query.filter; async.series([ function(callback) { MongoClient.connect(url, function(err, db) { if (err) return callback(err); locals.collection = db.collection(section); callback(); }); }, function(callback) { locals.collection.count(filter, function (err, result){ if (err) return callback(err); locals.count = result; callback(); }); }, function(callback) { //var cursor = locals.collection.find(filter); var cursor = locals.collection.find(filter, req.query); // if(req.query.order) { // cursor = cursor.sort(); // } // // if(req.query.limit) { // cursor = cursor.limit(Math.abs(req.query.limit)); // if(req.query.page) { cursor = cursor.skip(Math.abs(req.query.limit) * --req.query.page); } // } cursor.toArray(function(err, docs) { if (err) return callback(err); locals.docs = docs; callback(); }); } ], function(err) { //This function gets called after the three tasks have called their "task callbacks" if (err) return next(err); // Here locals will be populated with 'count' and 'docs' res.json({ count: locals.count, data: locals.docs }); });
};
我改变function服务器,现在我的回应是:
{ filter: {situation: 't'}, limit: '5', page: '1', sort: '-posted' }
和同样的错误:( 🙁
- find文档,并使用Node.JS Mongoose将值插入MongoDB中的数组
- 节点Mongo连接错误:连接4到xxx集群closures
- 如何用sportsname过滤
- node.js async.eachSeries太早调用最终callback
- 如何获取用户authservicelogin的currenlty的用户名
- 在使用Angular $资源时,在query()上不会触发callback
- Mongoosastic – {消息:'没有生活的连接'}
- 哪个数据库适合我的应用程序mysql或mongodb? 使用Node.js,Backbone,Now.js
- 节点Mongoose的MongoDb和asynchronous性