Я новичок в MongoDB, но у меня, похоже, есть тривиальная проблема с Mongolab, который я использую от Heroku.
Если я вставлю новый документ, у меня не будет ошибок. Но MongoDB Mongolab, похоже, не возвращает никаких документов после определенного документа. Также не последний документ, который я вставляю.
Вот пример; Я вставляю новый документ и запрашиваю последний. Должно быть так же, верно. Но это не так.
rs-ds027491:PRIMARY> db.measurements.insert({"temperature":"24.687","timestamp":"Sat, 24 Jan 2015 16:00:02 -0000","epoch_timestamp":1422108002})
WriteResult({ "nInserted" : 1 })
rs-ds027491:PRIMARY> db.measurements.find().limit(1).sort({$natural:-1})
{ "_id" : ObjectId("54c37fe687db950c001d04f4"), "temperature" : "24.75", "timestamp" : "Sat, 24 Jan 2015 13:20:02 -0000", "epoch_timestamp" : 1422098402 }
Я также попытался перебрать все документы (как из командной строки, так и с помощью Robomongo. Я получаю одинаковый результат в обоих):
db.measurements.find({})
... after some 'it's...
{ "_id" : ObjectId("54c37eba87db950c001d04f3"), "temperature" : "24.75", "timestamp" : "Sat, 24 Jan 2015 13:15:02 -0000", "epoch_timestamp" : 1422098102 }
{ "_id" : ObjectId("54c37fe687db950c001d04f4"), "temperature" : "24.75", "timestamp" : "Sat, 24 Jan 2015 13:20:02 -0000", "epoch_timestamp" : 1422098402 }
Как видите, последний документ - это тот документ, который был возвращен запросом выше, а не последний документ, который я вставил.
Есть ли что-то в Mongo или Mongolab, чего я не понимаю, или это должно сработать, но по какой-то причине это не так?