我无法在MongoDB中更新许多数据(对象类型的数组数据)请帮助我
import {MongoClient, ObjectId} from "mongodb";
async function handler(req, res) {
if (req.method === "POST") {
const data = req.body;
const client = await MongoClient.connect("mongodb+srv:myURL")
const db = client.db();
const postItCollection = db.collection("tableData");
const result = await postItCollection.updateMany({_id: new ObjectId(data.id)}, {$set : {
contents:data.contents,
width:data.width,
height:data.height,
positionX:data.positionX,
positionY:data.positionY,
positionZ:data.positionZ,
}}, {upsert: true});
client.close();
res.status(201).json({message: "success"})
}
}
export default handler;
例如,我有一个长度为2的数组数据。它是由需要更新的对象数据组成的。如果我使用上面的代码,所有属性值都输入空...
如何一次更新多个阵列数据?
[
{
id: 0.5849485030977961,
positionX: 0,
positionY: 0,
positionZ: 10,
width: 200,
height: 220,
userId: 'userid',
style: '',
pinned: false,
contents: { titles: [Array], contents: [Array] }
},
{
id: 0.06866579058492106,
positionX: 0,
positionY: 0,
positionZ: 10,
width: 200,
height: 220,
userId: 'userid',
style: '',
pinned: false,
contents: { titles: [Array], contents: [Array] }
}
]
如果我有以上数据,我想根据Mongo db
中的每个属性上传
3条答案
按热度按时间pieyvz9o1#
嗨我解决🤣了关键是
for loop
但是如果你有一个干净的代码,请让我知道🙏
4ktjp1zp2#
请参考MongoDB中的此文档,以便在单个查询中更新多个。
https://www.mongodb.com/docs/manual/reference/method/db.collection.bulkWrite/
qhhrdooz3#
可以使用
findByIdAndUpdate
简化代码: