我有一个词典数据库,其含义位于一个名为"germanTranslations"的数组中.我希望获得以某个子字符串开头的术语,并根据结果的字符串长度对它们进行排序.(用于搜索栏自动完成.)
例如:
{id:0, germanTranslations:["Diagnosekit","Testkit"]}
{id:1, germanTranslations:["Ausprobieren", "Testen", "Probe", "Test", "Versuch"]}
{id:2, germanTranslations:["Testament","Bibel"]}
我希望结果能投射到
{id:1, germanTranslations: "Test"}
{id:1, germanTranslations: "Testen"}
{id:0, germanTranslations: "Testkit"}
{id:2, germanTranslations: "Testament"}
我try 使用此语法(目前仅使用指南针)
Filter: {germanTranslations:{$regex:/^test/i}}
Project: {"germanTranslations":1,"result_length":{$strLenCP: "germanTranslations.$"}}
Sort: {"result_length":1}
它将"germanTranslations.$"视为文字字符串,但"$germanTranslations.$"给出一个语法错误,而"$germanTranslations"是一个数组而不是字符串.我try 使用arrayElemAt,但我不知道如何才能获得结果的索引.