У меня есть массив объектов.
const arr = [
{
name: 'somename',
age: 25,
},
{
name: 'othername',
age: 15,
},
]
Когда я обновляю свою коллекцию следующим образом:
MyCollection.insertMany(arr);
она работает правильно. Коллекция имеет 2 объекта, соответствующих переменной arr
.
Я также хочу сохранить эти данные во временной коллекции. Вот так:
const fileName = '/tmp/some_data.bson';
const data = BSON.serialize(arr); //arr from above
await fs.writeFile(fileName, data);
await child_process.exec(`mongorestore --drop -d my-db -c my_collection_temp ${fileName}`);
Это работает, но коллекция temp
содержит только 1 объект (вместо 2), и этот 1 объект имеет 2 поля, каждое из которых имеет 2 поля.
Вид выглядит примерно так:
Основная коллекция:
Object1 { name: 'somename', age: 25 }
Object2 { name: 'someothername', age: 15 }
Temp Collection:
Object 1 {
0: {
name: 'somename', age: 25
}
1: {
name: 'someothername', age: 15
}
}
Я получаю, что когда я выполняю mongorestore --drop -d my-db -c my_collection_temp ${fileName}
, он просто сбрасывает Буфер в коллекцию, но мне нужен способ пропустить это и распространить объект как в основной коллекции.
Другими словами, я думаю, что я хочу имитировать от insertMany
до mongorestore
Любая помощь приветствуется,