当前位置: 首页 > 面试题库 >

如何处理go中从mongo返回的任意哈希(使用mgo)?

弘烨烁
2023-03-14
问题内容

我可以找到的所有引用都构造一个结构来保存返回值,假设每个返回的记录都具有相同的架构。如果它们确实是文档,并且除了几个可查询的一致元数据属性外没有其他一致的架构,那么该如何处理该返回值?

例如:此https://groups.google.com/forum/#!msg/mgo-
users/KirqfCSlKFc/t2l3l4yxFRwJ
假设您有一组时间戳记。如果它是一个数组,其中某些值是时间戳,有些是字符串,该怎么办?

在ruby中,我只是将整个返回的记录视为任意哈希,然后逐个密钥地对其进行处理。我该怎么办?


问题答案:

您可以使用通用映射,例如:

var result map[string]interface{}
err := collection.Find(query).One(&result)

您会发现使用的人bson.M,这也是具有相同基础类型的地图。不过bson.M,没有什么特别的。它只是地图的简称和便捷名称。您可以创建自己的方便名称,也可以使用上面的示例中的普通地图。

在没有定义架构的情况下访问文档的另一种方法是bson.D代替上面的地图类型。bson.D当文档中的元素顺序相关时,或者如果您想稍微减少操作开销(由于地图的性质,处理地图会稍微贵一些)时,此功能最有用。该bson.D类型是带有键/值对的结构值的一部分。与不同bson.M,它bson.D是特殊的,并由mgo
/ bson软件包内部处理。



 类似资料:
  • 问题内容: 当大小超过maxthreshold值时,如何在哈希表或哈希表中进行重新哈希处理? 是否所有对都已复制到新的存储桶阵列中? 编辑: 重新哈希后,同一存储桶(位于链接列表中)中的元素会发生什么情况?我的意思是说,他们在重新哈希处理后会留在同一个桶中吗? 问题答案: 问题中的最大阈值称为负载系数。 建议负载系数约为0.75。负载因子定义为(m / n),其中n是哈希表的总大小,m是在需要增加

  • 问题内容: 我目前正在尝试制作一个将动词与西班牙语共轭的程序。我创建了一个哈希表,其中包含一个键和对象Ve​​rb的实例化。键是具有动词不定式形式的字符串(例如“ hablar”)。这是到目前为止我对哈希映射的代码: HashMap中每个动词的键都基于动词的不定式形式。例如,字符串“ hablar”是西班牙语动词的键。Verb类具有一个名为getInfinitive()的方法,该方法返回一个字符串

  • 输入是一个哈希映射,比如 我想写一个方法,返回类型A的列表,其中有键,值属性与字符串类型,和键值从hashmap。 如何让它成为现实?

  • 问题内容: 我的自定义结构实现了Hashable Protocol 。但是,当在键中插入键时发生哈希冲突时,不会自动处理它们。我该如何克服这个问题? 背景 我之前曾问过这个问题, 如何在Swift中为Int数组(自定义字符串struct)实现哈希协议。后来我添加了自己的答案,似乎很有效。 但是,最近我在使用时发现了一个细微的碰撞问题。 最基本的例子 我已将代码简化为以下示例。 定制结构 请注意,为

  • 问题内容: 我时不时听到“使用bcrypt在PHP中使用密码,bcrypt规则存储密码”的建议。 但是什么呢?PHP不提供任何此类功能,维基百科对文件加密实用程序不屑一顾,而Web搜索仅显示了几种以不同语言实现的Blowfish实现。现在Blowfish也可以通过PHP在PHP中使用,但这对存储密码有何帮助?河豚是一种通用密码,它有两种工作方式。如果可以加密,则可以解密。密码需要单向散列功能。 有

  • 问题内容: 你们中 有谁 知道如何在 AngularJS中 很好地处理锚点哈希链接吗? 我为简单的常见问题解答页面添加了以下标记 单击上面的任何链接时,AngularJS会拦截并将我路由到一个完全不同的页面(在我的情况下是404页,因为没有路由与这些链接匹配。) 我的第一个想法是创建一个匹配“ / faq /:chapter ” 的路由,并在相应的控制器中检查匹配的元素之后,然后使用jQuery向