簡體   English   中英

Mongoose:使用隨機生成的數據更新多條記錄

[英]Mongoose: Update multiple records with randomly generated data

有一個客戶集合,其結構如下:

const ClientSchema = mongoose.Schema({
          name: {
            type: String,
            required: true,
          },
          region: {
            type: String,
            required: true,
          },
          balance: {
            type: Number,
            default: 0,
          },
          phone: {
            type: Number,
            unique: true,
            required: true,
          },
});

這是我存儲的示例數據:

[
  {_id: 'someID1', name: 'Joe Smith', region: 'USA', balance: 0, phone: 123456789},
  {_id: 'someID2', name: 'Kim Laws', region: 'CANADA', balance: 100, phone: 342345345},
  {_id: 'someID3', name: 'Dandy Cruz', region: 'EUROPE', balance: 2000, phone: 4536456456},
]

數據在客戶端應用程序上顯示為表格,用戶可以修改表格上的數據(類似於電子表格)。

所以假設,在用戶弄亂了初始數據之后,它變成了這樣的東西:

[
  {_id: 'someID1', name: 'Freedom Brights', region: 'AFRICA', balance: 2000, phone: 123456789},
  {_id: 'someID2', name: 'Kim Sun', region: 'ASIA', balance: 0, phone: 342345345},
  {_id: 'someID3', name: 'Dandy Cruz', region: 'EUROPE', balance: 2000, phone: 4536456456},
]

您將如何使用 mongoose 在單個請求中更新所有這些記錄?

我嘗試了一些谷歌搜索並找到了諸如update()updateMany()之類的方法,但那里的所有示例並沒有完全顯示如何解決這個問題。

我將非常感謝任何幫助。 謝謝!

你可以使用批量寫入

db.collection.bulkWrite( [
   { updateMany :
      {
         "filter" : <document>,
         "update" : <document or pipeline>,          // Changed in MongoDB 4.2
         "upsert" : <boolean>,
         "collation": <document>,                    // Available starting in 3.4
         "arrayFilters": [ <filterdocument1>, ... ], // Available starting in 3.6
         "hint": <document|string>                   // Available starting in 4.2.1
      }
   }
] )

還有文檔https://mongoosejs.com/docs/api.html#model_Model.bulkWrite

暫無
暫無

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

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