Я перебираю результаты запроса, вычисляя массив значений с плавающей запятой. Теперь из C ++ я хочу добавить его в исходную запись или, если он уже есть, обновить его.
Из Javascript я делаю что-то похожее на:
db.scraps.find({type: {$exists: 0}}).forEach(function (doc) {
var new_array = []
// fill the elements of new_array from doc fields
doc.new_field = new_array;
db.scraps.save(doc);
}
Кажется, что это не может быть сделано с драйвером C ++ (я все еще использую 2.6), за исключением использования update
, Если это правда, я думаю, что я должен сохранить в массиве пару (OID, new_array) из моего запроса, а затем итерировать по нему, вызывая: conn.update("kb.scraps", QUERY("_id" << OID), BSON("new_field" << new_array))
Спасибо за вашу помощь!
Задача ещё не решена.
Других решений пока нет …