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

在mongodb中插入python对象

谭鹏云
2023-03-14
问题内容

伙计们,我只是花了很多时间来尝试查找-我应该缺少一些基本知识。

我有一个python对象,我要做的就是将此对象插入mondodb中。

这就是我所拥有的:

from pymongo import Connection
import json

conn = Connection()
db = conn.cl_database
postings = db.postings_collection

class Posting(object):
    def __init__(self, link, found=None, expired=None):
        self.link = link
        self.found = found
        self.expired = expired

posting = Posting('objectlink1')
value = json.dumps(posting, default=lambda x:x.__dict__)
postings.insert(value)

抛出此错误:

Traceback (most recent call last):
  File "./mongotry.py", line 21, in <module>
postings.insert(value)
  File "build/bdist.macosx-10.7-intel/egg/pymongo/collection.py", line 302, in insert
  File "build/bdist.macosx-10.7-intel/egg/pymongo/database.py", line 252, in _fix_incoming
  File "build/bdist.macosx-10.7-intel/egg/pymongo/son_manipulator.py", line 73, in transform_incoming
TypeError: 'str' object does not support item assignment

好像是因为json.dumps()返回一个字符串。

现在,如果我在插入之前对值进行加载,则效果很好:

posting = Posting('objectlink1')
value = json.dumps(posting, default=lambda x:x.__dict__)
value = json.loads(value)
postings.insert(value)

最直接的方法是什么?

谢谢!


问题答案:

是什么value在你最初的代码?

它不应该是dict类实例

这应该工作:

postings.insert(posting.__dict__)


 类似资料:
  • 我们有一个包含数百个类/枚举的大型应用程序,我们希望使用MongoDB来存储其中的一些。 目前的情况是,我们有一个二进制序列化的系统。NET对象转换为SQL数据库中的字段,然后按需反序列化。我们想要的是以一种允许我们直接查询对象属性的方式将对象放入Mongo(即,不必将对象加载到内存、反序列化等)。这样我们就可以从历史数据中获得一些分析,而无需大幅更改代码库。 我的问题是,这很容易实现吗?C#驱动

  • 问题内容: 我只想将对象推入mongodb中的对象数组 并将对象推入需要执行的上述文档中 那么我如何使用 mgo驱动程序* 实现相同的功能 * 问题答案: 请尝试以下操作:

  • 我需要向MongoDB插入一个文档并返回新插入的文档。我用了db。集合(“集合名称”)。insertOne(“要插入的数据”)。然后((res)= 错误:未定义ops。 insertOne只返回插入文档的_id,而不是整个文档☹ 但早些时候,它通常返回整个文档。我使用了mongoclient而不是mongoose,在mongoose中它返回整个文档,但我不喜欢使用mongoose。

  • 主要内容:insert() 与 save() 方法,insertOne() 方法,insertMany() 方法前面我们已经介绍了如何在 MongoDB 中 创建数据库和 创建集合,接下来我们再来介绍一下如何在集合中插入文档。文档是 MongoDB 中数据的基本单位,由 BSON 格式(一种计算机数据交换格式,类似于 JSON)的键/值对组成。 insert() 与 save() 方法 您可以使用 MongoDB 中的 insert() 或 save() 方法向集合中插入文档,语法如下: db.

  • 问题内容: 我正在尝试使用Java将整个Java对象插入MongoDB集合中。我收到以下错误: 错误: Emplyoee.java(POJO) 主要方法类(test.java) 谁能解释我为什么收到此错误? 问题答案: 我有点困惑,不知道为什么您会首先想到这种方法。您需要了解的第一件事是如何将POJO映射到MongoDB文档。当前,您没有告诉系统(您的代码)如何执行该操作。 您可以为此使用映射库(