как получить результаты от mongoDB, где _id - это строка objectId

в моей базе данных mongo _id - это строка из ObjectId, например:

введите здесь описание изображения

когда я делаю этот запрос, я получаю результаты, но с неправильной сортировкой

db.collection.find({ _id : {$gt:"57c03e6288579757b5172d51"} });

как это исправить?


person ehab    schedule 27.09.2016    source источник
comment
Вы пробовали это? db.collection.find({ _id : "57c03e6288579757b5172d51"});   -  person John    schedule 27.09.2016
comment
Если вы хотите, чтобы он отсортировался по _id, вы должны сделать это явно, связав .sort({_id: 1}) с вашей командой. Это то, что вы имеете в виду под неправильной сортировкой?   -  person JohnnyHK    schedule 27.09.2016
comment
@John, твой запрос работает, но мне нужно передать $gt 'больше чем'   -  person ehab    schedule 27.09.2016
comment
@JohnnyHK спасибо, но мне нужны результаты, у которых _id больше, чем переданный _id в запросе   -  person ehab    schedule 27.09.2016
comment
@ehab Конечно, именно поэтому вы связываете вызовы вместе: db.collection.find({ _id : {$gt:"57c03e6288579757b5172d51"} }).sort({_id: 1});. Это делает то, что вы хотите?   -  person JohnnyHK    schedule 28.09.2016


Ответы (1)


Вы не можете запросить, вставив строку objectID с оператором $gt. Вам нужно будет создать objectID.

var objID = ObjectId("57c03e6288579757b5172d51");
db.collection.find({ _id : {$gt: objID} });

Документация

person Tal    schedule 27.09.2016