考虑以下数据库文档:
我需要将元素推送到数组突出显示的字段"角色"。
我已尝试过以下代码,但没有成功。我需要知道使用哪个命令代替" SelectWhere" ...
patches.Add(new ScriptedPatchCommandData
{
Key = "Users/" + (mp.EnableChangeUserName ? user.ProviderUserKey : username),
Patch = new ScriptedPatchRequest
{
Script = @"
var app = this.Applications.SelectWhere(function(application){
return application.Key == appKey;
});
if(app != null) { app.Roles.PushAll(roles) }",
Values = { { "appKey", mp.ApplicationKey }, {"roles", roleNames} }
}
});
建议?
答案 0 :(得分:1)
这应该可以解决问题:
for (var i = 0; i < this.Applications.length; i++)
{
var app = this.Applications[i];
if (app.Key == appKey)
{
app.Roles = app.Roles.concat(roles);
}
}
在Raven Management Studio中进行测试时,您似乎无法在“参数”窗口中表示数组,因此我必须将其作为字符串["foo","bar"]
输入,并对脚本进行一次小的更改: / p>
... .concat(eval(roles))