标签: mongoengine

在mongoengine中选择文档但不包括一个

我有从DB和wat中检索的文档以选择任何其他排除此文档.我试过以下查询:

{'email': u'test@mail.com', 'id': {'$ne': ObjectId('51f7f13fca798933a0c70f69')}}
{'email': u'test@mail.com', 'pk': {'$ne': ObjectId('51f7f13fca798933a0c70f69')}}

{'email': u'test@mail.com', '_id': {'$ne': ObjectId('51f7f13fca798933a0c70f69')}}
Run Code Online (Sandbox Code Playgroud)

最后一个是MongoDB控制台的有效查询,前两个 - 我试图传递给我的查询对象的查询失败并显示错误消息:

>>>User.object.query(my_query)

ValidationError: {'$ne': ObjectId('51f7f13fca798933a0c70f69')} is not a valid ObjectId
Run Code Online (Sandbox Code Playgroud)

怎么解决?

python mongodb mongoengine

0
推荐指数
2
解决办法
2108
查看次数

自定义 _id 字段 Django MongoDB MongoEngine

是否可以在 Django 和 MongoEngine 中使用自定义 _id 字段?问题是,如果我尝试将字符串保存到 _id 字段,则会引发 Invalid ObjectId 错误。我想要做的是使用我自己的 ID。如果不使用 Django,这从来都不是问题,因为如果给定的 id 已经存在,我会在创建时捕获 DuplicateKeyError(这甚至有必要告诉程序,这个 ID 已经被占用)现在似乎 Django/MongoEngine 不会甚至让我创建一个自定义 _id 字段 :-/ 有没有办法解决这个问题,而无需为 ID 创建第二个字段并让 _id 字段自己创建?

问候 Codehai

python django mongodb mongoengine

0
推荐指数
1
解决办法
2180
查看次数

在 marshmallow-mongoengine 中使用参考字段

如何在 marshmallow_mongoengine 中取消引用 ReferenceFields?例如,dump_data = author_schema.dump(author).dataresults in'5578726b7a58012298a5a7e2'而不是更有用的 response {title='Fight Club', author=author}

from marshmallow_mongoengine import ModelSchema

class AuthorSchema(ModelSchema):
    class Meta:
        model = Author

class BookSchema(ModelSchema):
    class Meta:
        model = Book

author_schema = AuthorSchema()

author = Author(name='Chuck Paluhniuk').save()
book = Book(title='Fight Club', author=author).save()

dump_data = author_schema.dump(author).data
# {'id': 1, 'name': 'Chuck Paluhniuk', 'books': ['5578726b7a58012298a5a7e2']}

author_schema.load(dump_data).data
# <Author(name='Chuck Paluhniuk')>
Run Code Online (Sandbox Code Playgroud)

mongoengine marshmallow

0
推荐指数
1
解决办法
708
查看次数

导入错误:没有名为rest_framework_mongoengine的模块

我已经使用 pip 安装了 DjangoRest 框架和 Mongo 引擎,包含rest_framework_mongoengineINSTALLED_APPS列表中。当我运行服务器时仍然抛出异常。

文件“/Users/anum/Desktop/Python/ConnectBox/env/lib/python2.7/site-packages/django/utils/autoreload.py”,第 227 行,包装器 fn(*args, **kwargs)

文件“/Users/anum/Desktop/Python/ConnectBox/env/lib/python2.7/site-packages/django/core/management/commands/runserver.py”,第 117 行,inner_run autoreload.raise_last_exception()

文件“/Users/anum/Desktop/Python/ConnectBox/env/lib/python2.7/site-packages/django/utils/autoreload.py”,第 250 行,在 raise_last_exception Six.reraise(*_exception) 中

文件“/Users/anum/Desktop/Python/ConnectBox/env/lib/python2.7/site-packages/django/utils/autoreload.py”,第 227 行,包装器 fn(*args, **kwargs)

文件“/Users/anum/Desktop/Python/ConnectBox/env/lib/python2.7/site-packages/django/ init .py”,第 27 行,在 setup apps.populate(settings.INSTALLED_APPS) 中

文件“/Users/anum/Desktop/Python/ConnectBox/env/lib/python2.7/site-packages/django/apps/registry.py”,第 85 行,填充 app_config = AppConfig.create(entry)

文件“/Users/anum/Desktop/Python/ConnectBox/env/lib/python2.7/site-packages/django/apps/config.py”,第 94 行,在 create module = import_module(entry) 中

文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/ init .py”,第 37 行,在 import_module import (name)中

导入错误:没有名为rest_framework_mongoengine的模块

这是我的Settings.py

使用pip list命令,列出了以下软件包:

Django (1.11.2)
djangorestframework (3.6.3)
mongoadmin (0.2)
mongodbforms (0.3)
mongoengine (0.13.0)
pip …
Run Code Online (Sandbox Code Playgroud)

python django mongoengine django-rest-framework

0
推荐指数
1
解决办法
3153
查看次数

无法弄清楚 mongoengine 上的许多更新

此代码返回一个我不明白的错误:

query = Analytic.objects(uid__type="binData")
analytics = []
for analytic in query:
    analytic.sessionId = str(analytic.sessionId)
    analytic.uid = str(analytic.uid)
    analytics.append(analytic)
    if len(analytics) % 10000 == 0:
        print(".")
    if len(analytics) == 100000:
        Analytic.objects.update(analytics, upsert=False)
        analytics = []
Run Code Online (Sandbox Code Playgroud)

类型错误:update() 获得参数“upsert”的多个值

mongodb mongoengine python-3.x

0
推荐指数
1
解决办法
5692
查看次数

MongoDB:如何根据应用程序访问模式设计模式?

作为来自 DynamoDB 的人,对 MongoDB 模式进行建模以真正融入我的应用程序有点令人困惑,特别是因为它具有引用的概念,并且不建议从我阅读的内容中保留重复数据以适应您的查询。

以下面的例子为例(在 mongoengine 中建模,但应该无关紧要):

    #User
    class User(Document):
        email = EmailFieldprimary_key=True)
        pswd_hash = StringField()
        #This also makes it easier to find the Projects the user has a Role
        roles = ListField(ReferenceField('Role')

    #Project
    class Project(Document):
        name = StringField()
        #This is probably unnecessary as the Role id is already the project id
        roles = ListField(ReferenceField('Role'))

    #Roles in project
    class Role(Document):
        project = ReferenceField('Project', primary_key=True)
        #List of permissions
        permissions = ListField(StringField())
        users = ListField(ReferenceField('User')
Run Code Online (Sandbox Code Playgroud)

项目用户

每个 …

database-design mongodb nosql mongoengine

0
推荐指数
1
解决办法
3768
查看次数

MongoEngine fieldDoesNotExist 错误但实际上是

我有一堂课:

\n
class POI(Document):\n    location = PointField(required=True)\n    name = StringField(default='')\n    generate_by = IntField(required=True)\n    status = StringField(default='Active')\n    colle\xd1\x81ted_by = IntField()\n    time_created = DateTimeField(default=datetime.datetime.now)\n
Run Code Online (Sandbox Code Playgroud)\n

当我尝试插入时

\n
POI(location=[55.430212, 30.521000], generate_by=1241254, name="Sample", collected_by=None)\n
Run Code Online (Sandbox Code Playgroud)\n

发生错误

\n
mongoengine.errors.FieldDoesNotExist: The fields "{'collected_by'}" do not exist on the document "POI"\n
Run Code Online (Sandbox Code Playgroud)\n

怎么了?

\n

python error-handling mongodb mongoengine

0
推荐指数
1
解决办法
1198
查看次数