using System.Text.RegularExpressions;
public static void Main()
var i18n = @"{""category"":""backoffice"",""displaykey"":""backoffice:label:matchenablestatus"",""defaultvalue"":{""en-gb"":""Match Feed Provide Status"",""zh-cn"":""赛事资料提供状态""}},
{""category"":""backoffice"",""displaykey"":""backoffice:label:accumulatecomboliabilityfactorpermatch"",""defaultvalue"":{""en-gb"":""Accumulate Combo Liability Per Match Factor"",""zh-cn"":""单场累计复式债务系数""}},
{""category"":""backoffice"",""displaykey"":""backoffice:label:accumulatecomboliabilitypermatch"",""defaultvalue"":{""en-gb"":""Accumulate Combo Liability Per Match"",""zh-cn"":""单场累计复式债务""}},
{""category"":""backoffice"",""displaykey"":""backoffice:label:probabilitytier"",""defaultvalue"":{""en-gb"":""Probability Tier"",""zh-cn"":""概率层级""}},
{""category"":""backoffice"",""displaykey"":""backoffice:label:maxliability"",""defaultvalue"":{""en-gb"":""Max Liability"",""zh-cn"":""最高债务""}},
{""category"":""backoffice"",""displaykey"":""backoffice:label:sumequalerror"",""defaultvalue"":{""en-gb"":""{name} sum should be {value}."",""zh-cn"":""{name}总和应为 {value}。""}},
{""category"":""backoffice"",""displaykey"":""backoffice:label:basevalue"",""defaultvalue"":{""en-gb"":""Base Value"",""zh-cn"":""基准值""}},
{""category"":""trading"",""displaykey"":""trading:probabilitytier:1"",""defaultvalue"":{""en-gb"":""Lower than 11"",""zh-cn"":""低于 11""}},
{""category"":""trading"",""displaykey"":""trading:probabilitytier:2"",""defaultvalue"":{""en-gb"":""Between 11 to below 31"",""zh-cn"":""介于 11 至低于 31""}},
{""category"":""trading"",""displaykey"":""trading:probabilitytier:3"",""defaultvalue"":{""en-gb"":""Between 31 to below 51"",""zh-cn"":""介于 31 至低于 51""}},
{""category"":""trading"",""displaykey"":""trading:probabilitytier:4"",""defaultvalue"":{""en-gb"":""Between 51 to below 71"",""zh-cn"":""介于 51 至低于 71""}},
{""category"":""trading"",""displaykey"":""trading:probabilitytier:5"",""defaultvalue"":{""en-gb"":""Above 71"",""zh-cn"":""高于或等于 71""}}
var data = string.Join(Environment.NewLine, i18n
DisplayKey = Regex.Match(i18n, @"""displaykey"":""(?<displaykey>[^""]+)""").Groups["displaykey"].ToString(),
.Select(item=> string.Format("db.localization.update({{\"displaykey\":\"{0}\"}},{{$set:{1}}}}}, true, true);", item.DisplayKey, item.RawData))