【问题标题】:Convert ObjectId of mongodb object to string将mongodb对象的ObjectId转换为字符串
【发布时间】:2014-04-20 14:40:52
【问题描述】:

如何将mongodb对象的ObjectId转换成字符串格式。

ObjectId('5323d54c41cf6e0ffab13384')

我有上面的 ObjectId,我想将此 ObjectId 转换回生成它的字符串名称。有什么方法可以直接在 django 模板中从 ObjectId 上方显示名称。请建议。

【问题讨论】:

  • 你用的是java驱动吗?
  • 我向所有习惯于回答开发人员问题的 stackoverflow 用户请求,我坚信这是一个很好的平台,可以帮助大多数开发人员解决他们的问题。但请不要因为对他们的问题投反对票而让开发人员失望。

标签: django mongodb django-templates


【解决方案1】:

只需获取字符串表示:

ObjectId('5323cc2770fde63cf1146ba3')
>>> str(o)
'5323cc2770fde63cf1146ba3'

另见documentation

尽管您似乎对 ObjectId 是什么并不完全了解,但从您的 cmets 来看,我建议您对此进行 some reading。还请阅读documents

似乎要问的是,我如何从您保存后收到的ObjectId 获取 "properties" “文件”,或者,以某种形式或另一种形式。您通过查询数据库获得“文档”:

var doc = db.collection.findOne({ _id: ObjectId('5323cc2770fde63cf1146ba3') })

然后您可以访问您收到的文档的“属性”。因此,您获取的结果“文档”可能如下所示:

{
    "_id": ObjectId('5323cc2770fde63cf1146ba3').
    "name": "Neil",
    "favouriteColour": "Blue",
    "age": "Don't Ask"
}

ObjectId 本身不包含任何魔法 信息。它是集合中存在的文档的主键。

【讨论】:

  • 不,我想要这个对象的字符串格式的名称。是否可以从 ObjectId 中找出来?
  • @SunnyChaudhari 见最后一行。 str() 函数只是将 Object 转换为字符串。你还问什么。 ObjectId 本身以外的其他属性?
  • 首先让我明白一点,当对象保存在 mongodb 中时,它会得到一个 ObjectId,因此,例如,当我们将此名称保存在数据库中时,对象的名称是“Neil”,它的 ObjectId 说“ObjectId('5323cc2770fde63cf1146ba3')” 所以,我希望从这个 ObjectId 中我们可以找到名称为 'Neil',而不是直接在 django 模板上查询。请建议,有什么办法吗?
  • @SunnyChaudhari 查看更多信息。您可能会认为您的问题不能被解释为您真正想要实现的目标。
  • 好的,我明白了,这意味着它不可能,因为 ObjectId 是针对整个文档的。我说的对吗?
猜你喜欢
  • 2022-01-02
  • 2011-12-11
  • 2018-11-09
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多