2016-06-16 2 views
0

мне нужно отправить запрос Монго в JSON напечатала тело запроса, что-то вроде:Как передать mongodb ObjectId() в HTTP-запросе тело JSON?

{ _id : { $gt : ObjectId("575d0c22964ddb3b6ba41bed") } } 

(чтобы получить записи вставлены поздним id'ed записи)

на стороне сервера узла у меня есть экспресс с промежуточным программным обеспечением body-parser. Он не будет анализировать тело запроса JSON, если все не цитируется. Например. вышесказанное должно быть следующим:

{ "_id" : { "$gt" : "ObjectId(\"575d0c22964ddb3b6ba41bed\")" } } 

db выполняет запрос со всеми кавычками и ничего не возвращает.

Как передать ObjectId() в mongodb как функцию без повторного разбора всего тела запроса и снятия кавычек?

Я тестирую с расширением postman в Chrome и отправляет запрос в REST url: /api/:obj_type/list.

Весь объект запроса используется в качестве запроса.

ответ

0

Вы будете пропускать только строковое значение на клиенте и сервере до тех пор, пока запрос не будет сделан в базе данных, в какой точке вы должны сделать его новым ObjectID с тем же значением, которое будет передано в db. Прохождение вокруг строки немного проще, так как все клиенты/сервер знают, как обращаться со строкой vs ObjectID - также передача ObjectID в URL-адресе будет проблемой. - Чтобы ответить на вопрос о том, как передать ObjectID() в Monogdb без повторного разбора. Вы на самом деле не был бы не, если я недопонимание контекста

но прохожу вокруг ID в виде строки, так что это будет что-то вроде вара stringId = "507f1f77bcf86cd799439011" и когда вы собираетесь сделать запрос вы могли бы сделать что-то вдоль линий col.find({_id: new ObjectId(stringId)}).toArray(function(err,results){});

+0

Спасибо @ Andrei M. У меня уже есть определение маршрута app/api /: obj_type/read /: id, который обрабатывает один из них по id. Здесь я пытаюсь передать сложный запрос в тело запроса на более общий путь: app/api /: obj_type/И проблема в том, как сохранить код на стороне сервера как можно более общим и чистым. – user2595491

Смежные вопросы