我有一组文件,每个文件都有一个“列表”属性。
此列表是一个唯一对象数组(我为每个对象生成了一个ObjectID)。我们称之为listElements。
现在。我需要更新同一查询中的1个或多个元素。 我不需要索引。 对于数组,我无法使用自己的特定值更新每个数组,它只能用于使用相同的操作更新所有匹配项。
我想过将“列表”从数组转换为一个对象,其键是ObjectID值,所以我可以这样做:
{ $set: { "list.23rwfsdgfsda.time":123, "list.GJHhjh34j2h.order": "ascending" } }
这只是一个占位符示例,我知道密钥的12个字符:P
我的问题围绕着密钥:12个字符是太多了。我估计给定列表大约有300个可能的listElements(可能更多),所以3个字符的16个基数甚至10个基数值都可以。
现在,如何为每个新listElement生成一个unique-per-“list”键,同时避免使用计数器?对我来说,只要它们很短且每个“列表”都是唯一的,关键名称对我来说并不重要。
P.S:我不需要索引,因为我永远不会根据列表和/或内容找到集合中的所有文档。