我有一个数组
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();