[英]How to update nested object in a MongoDB collection based on the request?
我有下面給出的用戶集合
{
"_id": 1
"firstname": "John"
"lastname": "Doe"
"address": {
"street": "13",
"city": "Los Angeles",
"state": "California",
"country": "USA",
"pincode": "12345"
}
}
我想制作一個可以更新用戶數據的 API。
這是我嘗試過的:
使用此方法將從集合中刪除請求中不存在的某些字段。
詢問:
const updateUser = (userId, data) => {
return UserDB.updateOne({ _id: userId }, {
$set: {...data }
});
};
要求:
{
"_id": 1
"firstname": "Justin"
"lastname": "Thomas"
"address": {
"country": "Canada",
"pincode": "9999"
}
}
結果:
// street, city and state is removed from collection
{
"_id": 1
"firstname": "Justin"
"lastname": "Thomas"
"address": {
"country": "Canada",
"pincode": "9999"
}
}
使用此方法,將請求中不存在的字段設置為空。
詢問:
const updateUser = (userId, data) => {
return UserDB.updateOne({ _id: userId }, {
$set: {
"firstname": data.firstname,
"lastname": data.lastname,
"address.street": data.address.street,
"address.city": data.address.city,
"address.state": data.address.state,
"address.country": data.address.country,
"address.pincode": data.address.pincode
}
});
};
要求:
{
"_id": 1
"firstname": "Justin"
"lastname": "Thomas"
"address": {
"country": "Canada",
"pincode": "9999"
}
}
結果:
// street, city and state is set to null in the collection.
{
"_id": 1
"firstname": "Justin"
"lastname": "Thomas"
"address": {
"street": null,
"city": null,
"state": null,
"country": "Canada",
"pincode": "9999"
}
}
第二種方法是運行良好的操場,請檢查您的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.