我正在使用 MongoDB+Express+Node.js 开发 API。到目前为止一切顺利,我可以通过ID查询一条记录,我可以查询特定字段,删除,添加等。
我正在寻找一种可以调用来为 mongoDB 创建通用查询的方法,我将在其中将模型的 json 表示传递给它,并使用“一些”数据进行搜索。如果 json 对象中未指定该字段,则它将仅搜索指定的那些字段。
这是我已经完成的样板代码,但我对 JavaScript 和 Node 非常陌生,我认为我需要在运行 .find 方法之前解析或清理查询对象。
基本上,我希望能够执行类似于在 parse.com 中完成的查询,您可以在其中发送带有要搜索的数据的对象模型,并获得所有匹配的结果。
任何帮助将不胜感激!
--此代码在我的自定义模块中--
exports.findByQuery = function(req, res) {
var query = req.query;
db.collection('artists', function(err, collection) {
collection.find(query).toArray(function(err, docs) {
res.send(docs);
});
});
};
--这是路由文件--
var express = require('express'),
artist = require('./routes/artists');
var app = express();
app.configure(function () {
app.use(express.logger('dev')); /* 'default', 'short', 'tiny', 'dev' */
app.use(express.bodyParser());
});
app.get('/search/', artist.findByQuery);
app.get('/artist/:id', artist.findById);
app.post('/artist', artist.addArtist);
app.put('/artist/:id', artist.updateArtist);
app.delete('/artist/:id', artist.deleteArtist);
app.listen(3000);