Porównaj podobne z podobnymi
_id
klucz w mongo nie jest (domyślnie) ciągiem znaków - jest to identyfikator obiektu mongo.
Musisz porównać z tym samym typem, aby uzyskać sensowny wynik:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId();
db.things.find(_id: {$gt: oid});
Nie czytaj plików mongoexport
Pliki eksportu Mongo wyglądają tak:
{ "_id" : { "$oid" : "4f876b00c56da1fa6a000030" }, ...
To jest reprezentacja json identyfikatora obiektu. Mongo nie chce, abyś używał tego rodzaju składni podczas wykonywania zapytań do bazy danych. To nie zadziała:
# will not work
db.things.find("_id.$oid": {$gt: "string"});
id jako ciąg
Jeśli masz identyfikator jako ciąg, zrobisz:
var ObjectId = require('mongodb').ObjectID;
var str = "123456789012345678901234";
var oid = new ObjectId(str);
db.things.find(_id: {$gt: oid});
identyfikator jako częściowy ciąg
Jeśli ciąg, który posiadasz, nie jest prawidłowym oid (nie ma długości 24 znaków), otrzymasz po prostu wyjątek od mongo - lub, w zależności od sterownika, nowy oid. Jeśli masz częściowy identyfikator obiektu, możesz uzupełnić zerami, aby utworzyć prawidłowy oid, a tym samym umożliwić wyszukiwanie według częściowych identyfikatorów obiektu. np.:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId(str + "0000");
db.things.find(_id: {$gt: oid});