我有一个用户文档,用户可以将自己的字段添加到此文档中。默认情况下,这些字段是未命名的(因为用户只通过单击按钮创建它们),但是在创建后可以通过单独的操作重命名。
如果我想找到拥有的最近的未命名密钥:(在这种情况下它将是未命名的-4)并将其插入文档中我该怎么做?
或者我应该使用更好的数据模型/方法吗?
Users.update( id, {
$set: {
profile: {
userfields: {
owned: {
unnamed-1 : "field1",
unnamed-2 : "field1",
unnamed-3 : "field3",
mynamedfield : field 4
}
}
}
});
答案 0 :(得分:0)
只需使用数组而不是拥有的地图,并在更新时使用$ push命令,以防您需要添加另一个。
Users.update( id, {
$set: {
profile: {
userfields: {
owned: {
unnamed: [
"field1",
"field1",
"field3" ],
named: "field 4"
}
}
}
});
db.Users.update(
{ id: id },
{ $push: { 'profiles.userfields.owned.unnamed': 'field4' } }
)