簡體   English   中英

Mongodb文檔中如何將數組的元素復制到數組中

[英]How to copy the elements of an array into an array in a Mongodb document

我有一個數組

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

我想將這個數組的元素插入到 MongoDb 文檔中的一個數組中。 這是我的架構。

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

如您所見,數據字段代表一個數組。 在我的 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數組到data字段中的現有數組。

1.替換data字段的數組:

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

2.把append一個數組給data字段的數組:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM