Я работаю над API с MongoDB + Express + Node.js. Пока что так хорошо, я могу запросить одну запись по ID, я могу запросить конкретное поле, удалить, добавить и т. Д.гибкий метод запроса/функция для MongoDB + Express с использованием NodeJs
Я ищу метод, который можно вызвать для создания общего запроса для mongoDB, где я передам ему json-представление модели с «некоторыми» данными для поиска. Если поле не указано в объекте json, оно будет искать только те указанные поля.
Вот код шаблона, который у меня был, но я очень новичок в JavaScript и узле, и мне кажется, что мне нужно разобрать или обработать объект запроса перед запуском метода .find.
В основном я хочу иметь возможность выполнить запрос, аналогичный тому, как это делается на parse.com, где вы отправляете объектную модель с данными, которые хотите найти, и получаете все результаты, которые соответствуют.
Любая помощь была бы принята с благодарностью!
--This код в моем обычае module--
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);
});
});
};
--This это маршруты file--
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);
Трудно сказать, что здесь действительно задают. Для простых случаев использования похоже, что код, который у вас здесь, будет работать. Вы сталкиваетесь с проблемами? У вас есть более конкретный вопрос? –
Спасибо, Брет. Это возвращает все документы в базе данных, а не запрос, который я запрашиваю. Если заменить (запрос) на фактический объект напрямую (как в {поле: значение}, я получаю правильный возврат запроса. Похоже, объект передается, так как запрос не нравится методу find (экспресс-метод). –
Это общеизвестно как «запрос по примеру». Должно быть достаточно ссылок, которые нужно найти. –