Я люблю монгольскую мертвую говядину, но я в тупике.Я хотел бы получить результаты простого .find () для возврата в том же формате JSON, который соответствует выводу командной строки Mongo:
$ db.mycollection.find();
# outputs..
# { ...some data... , "_id" : ObjectId("4f0b371c0000008b6d000008") }
Однако с deedbeef метод .find ()не возвращает результат и не предоставляет обратный вызов.Поэтому я использую .toArray ();что мне кажется правильным.
Mongolian = require("mongolian"),
server = new Mongolian,
db = server.db("mydatabase"),
mycollection = db.collection("mycollection"),
mycollection.find().toArray(function(err, data){
res.write(JSON.stringify(data));
});
// outputs..
// { ...some data... , _id: { bytes: <Buffer 4f 0b 61 5a 00 00 00 7e 6e 00 00 06> } }
Стентификация двоичного кода _id (я предполагаю, что это и есть буфер) приводит к метрике @ # $!тонна данных.Как правильно вернуть JSON из mycollection.find ()?
~~~~~~~
Мне удалось убрать _id из результатов, используя следующее:
mycollection.find({}, { id:0 }).toArray(function(err, data){
res.write(JSON.stringify(data));
});
Однако большая проблема, связанная с преобразованием _id из JSON в BSON, все еще остается.