如何将数组的元素复制到Mongodb文档中的数组中



我有一个数组

let data = [a, b, c, d, e];

我想把这个数组的元素插入到MongoDb文档中的数组中。这是我的schema。

const userSchema = mongoose.Schema({
info: reqString,
data: [String]
});

可以看到,data字段表示一个数组。在我的index.js中,我使用for循环来迭代数组。

for(var i= 0; i < data.length; i++){
connectToDb(data[i]);
}

和connectToDb()在这里:

const connectToMongoDB = async (_data) => {
await mongo().then(async (mongoose) => {
try {
console.log('Connected to mongodb!');
await userSchema.findOneAndUpdate({
info: 'facts',
}, {
$push: {
data: _data,
}
});
} finally {
mongoose.connection.close();
console.log('Disconnected from mongodb!');
}
});
}

然而,尽管在MongoDb中创建了文档,但表示数组的数据字段仍然为空。我欢迎所有的建议

从你的问题是不清楚,如果你想设置data字段值与你的_data数组,或追加你的_data数组到现有的数组在data字段。

1。替换data字段的数组:

await userSchema.findOneAndUpdate(
{ info: 'facts' },
{ $set: { data: _data } }
).exec();

2。将一个数组添加到data字段的数组中:

await userSchema.findOneAndUpdate(
{ info: 'facts' },
{ $push: { data: { $each: _data } } }
).exec();

最新更新