У меня есть коллекция монго, которая была заполнена документами программой, использующей драйвер С# Mongo DB.
Если я найду
client.connect('mongodb://127.0.0.1:27017/foo', function(err, db) {
var things = db.collection('things');
things.find({}, ['ThingId']).limit(1).toArray(function(err, docs) {
console.log(docs[0]);
}
}
и посмотри, что хранится, то я вижу что-то вроде
{ _id: 1234235341234, ThingID: { _bsontype: 'Binary', sub_type: 3, position: 16, buffer: ‹Buffer a2 96 8d 7f fa e4 a4 48 b4 80 4a 19 f3 32 df 8e› }}
Я прочитал документацию и попробовал вещи как:
console.log(mongojs.Binary(docs[i].SessionId.buffer, 3).value());
но я не могу напечатать ThingId как строку UUID на консоли
и я определенно не могу запросить его!
Моя цель - запросить, передав строки GUID, чтобы найти, чтобы я мог выбирать документы, используя идентификаторы, которые я знаю, сгенерированные С# (и могу видеть с помощью RoboMongo)
Любая помощь очень ценится!
Обновление: как указал @wes-widner, команда драйверов mongo c# имеет вспомогательный js-файл UUID, который помогает конвертировать между различными UUID, и мы используем его в RoboMongo для прямого запроса. Но BinData, который он использует, доступен только в оболочке mongo, и я не знаю, как получить к нему доступ с помощью node.
связанный ответ показывает, как выполнять запросы с использованием uuidHelper и BinData при использовании оболочки mongo, по сути, что я спрашивать, как это сделать в узле