私のデータベース構造は次のようになります:
{
"_id" : ObjectId("51e66873f6a6600436000001")
,"email" : "asd@asd.de",
,"attribute_group_a" : {
"attribute_a" : ""
,"attribute_b" : ""
,"attribute_c" : ""
,"attribute_d" : ""
},
,"attribute_group_b" : {
"attribute_subgroup_b_a" : {
"attribute_a" : ""
,"attribute_b" : ""
,"attribute_c" : ""
,"attribute_d" : ""
}
,"attribute_subgroup_b_b" : {
"attribute_a" : ""
,"attribute_b" : ""
,"attribute_c" : ""
,"attribute_d" : ""
}
}
}
att_subgrp_b_a を更新したいとしましょう:
exports.updateProfil = function(req, res, item, callback) {
var email = req.session.email;
db.collection('profiles', function(err, collection) {
collection.update({"email": email},{$set: item}, function(err, result)
var "item" は次のようになります。
{
attribute_group_b:
{
attribute_subgroupgroup_b_a:
{
att_a: "xy"
,att_b: "xy"
}
}
}
ファイルを更新すると=> attr_group_bのすべてが削除され、「item」に置き換えられます
つまり、attr_subgrp_b_b が完全になくなり、(attr_subgrp_b_a の) 他のすべての属性が更新されていないことを意味します。
「item」の属性を探して、それらをdbに置き換えて、他のすべてのobjをそのままにしておきたい