Mongoose:使用随机生成的数据更新多个记录



有一个客户端集合的结构如下:

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},
]

你会如何用猫鼬在一个请求中更新所有这些记录?

我尝试了一些谷歌搜索,找到了像update()updateMany()这样的方法,但所有的例子都没有确切地说明如何解决这个问题。

如果有任何帮助,我将不胜感激。非常感谢。

您可以使用bulkwrite

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

最新更新