я запрос MongoDB Я бегу в NodeJS ниже, что не должен работать (DOC), если запрос возвращает нуль:MongoDB Найти проверить, существует не работает, как ожидалось
collection.find({ name: "HOSTNAME_1" }, {$exists: true}).sort({ _id : -1 }).limit(1).toArray(function(err, doc){
if (doc) {
res.write("event: add" + '\n');
res.write("data: " + JSON.stringify(doc).substr(1,JSON.stringify(doc).length-2) + "\n\n");
} else if (!doc) {
console.log("No Entry Found!");
}
});
почему-то все еще запускает функцию doc и выводит ее, когда я ее скручиваю.
event: add
data:
Если удалить .toArray
так мой запрос выглядит следующим образом:
db.clients.find({ name: "HOSTNAME_1" }, {$exists: true}).sort({ _id : -1 }).limit(1)
возвращает нуль, как предполагается, и если я запускаю его против элемента, который фактически делает существует она возвращает { "_id" : ObjectId("12345689randomnumber") }
как это предполагается. Что-то с .toArray
уничтожает мою ошибку {$exist:true}
.
Как я могу «обработать ошибку» в одном запросе без необходимости писать оператор if else вне запроса? Спасибо, c:
Я видел это, когда я запустил его внутри Монго, но я ничего не думал об этом. Мой дескриптор ошибки должен основываться на if (doc) = [] Я полагаю. Спасибо, что указали на это Билл! – KILLADELPHIA