Мне сложно найти последний вставленный элемент в монго. Я использую пример кода, который я нашел, и пытаюсь сделать запрос и отобразить элемент, но я получаю сообщение об ошибке. Я понимаю, что я должен сделать что-то подобное.узел js mongo найти последнюю добавленную
db.collectionName.findOne({}, {sort:{$natural:-1}})
Но это то, что у меня есть до сих пор, и оно не работает.
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
if(err) { return console.dir(err); }
var collection = db.collection('test');
var doc1 = {'hello':'doc1'};
var doc2 = {'hello':'doc2'};
var lotsOfDocs = [{'hello':'doc3'}, {'hello':'doc4'}];
collection.insert(doc1);
collection.insert(doc2, {w:1}, function(err, result) {});
collection.insert(lotsOfDocs, {w:1}, function(err, result) {});
collection.find({}).toArray(function(err, docs) {
console.log(docs[0]);
});
db.close();
});
Это ошибка.
nodejs/node_modules/mongodb/lib/mongodb/connection/base.js:246
throw message;
^
TypeError: Cannot read property '0' of null
Я проверил, чтобы база данных не была пуста, поэтому я не уверен, почему она возвращает null.
Что с использованием [** обратного порядка **] (http://docs.mongodb.org/manual/reference/operator/meta/natural/#reverse-order) в '$ Естественный' оператор: 'collection.find ({}). sort ({$ natural: -1}) toArray (..)' или просто 'collection.find(). sort ({$ natural: -1}). limit (1) ', чтобы вставить последний документ? – chridam
Я не могу это проверить, потому что я не могу получить 'collection.find ({}). ToArray (function (err, docs) { console.log (docs [0]); });' работать на данный момент –
любая идея, что не так с этим? У меня возникают проблемы с запросом на что-либо, пытающееся console.log на данный момент –