0

我有一个用户文档,用户可以将自己的字段添加到该文档中。默认情况下,这些字段是未命名的(因为用户只需单击一个按钮即可创建它们),但用户可以在创建后通过单独的操作对其进行重命名。

如果我想找到拥有的最近的未命名密钥:(在这种情况下它将是 unnamed-4)并将其插入到文档中,我该怎么做?

或者我应该为此使用更好的数据模型/方法吗?

Users.update( id, {
    $set: {
        profile: {
            userfields: {
                owned: {
                  unnamed-1 : "field1",
                  unnamed-2 : "field1",
                  unnamed-3 : "field3",
                  mynamedfield : field 4
            }
        }
    }
});
4

1 回答 1

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' } }
              )
于 2013-04-17T00:31:33.660 回答