问题标签 [mongoengine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用内置的 Django 身份验证/用户模型和 Mongodb
从 sqlite 切换到 MongoDB,我遵循了Django MongoDB Engine的所有设置/配置设置。现在,当我通过从 view.py 中的 adduser 方法返回 HTTP 响应来添加用户时:
这是我得到的错误:
DatabaseError at /adduser
relation "auth_user" does not exist
自 MongoDB NoSQL 以来,这种关系自然不存在。是不支持身份验证系统还是 Mongo-engine 有更好的解决方案?也许我应该搬到 Postgre?(sqlite 无法处理同时用户,所以不是一个可行的选择)
我看到了这个问题,但那是一年前的事了,所以希望到那时事情已经发生了变化,因为今年 MongoDB 获得了很大的普及。
python - 文档中的 Mongoengine creation_time 属性
我正在尝试为creation_time
我的文档添加一个属性。下面是一个例子:
Django 模型为其DateTimeField
对象(如add_now
等)内置了参数,但 MongoEngine 不支持这一点。
我想知道最好的方法是否如下:
或者如果有更好,更好的方法。
python - MongoDB 在 mongoengine 中使用 OR 子句
我正在使用 python 的 mongoengine 来查询 MongoDB,并且大部分时间都喜欢它,但是我遇到了高级查询的问题。
这是我的模型
我想查询所有ContentItem
属于特定帐户的,并且要么由登录用户创建,要么是公开的。这是我写的查询
或者:
但这些似乎是 XOR where if eitherpublic
或 the creator
but not both。这是预期的吗?
我忽略了什么吗?我应该直接用 mongodb 而不是 mongoengine 来做这个吗?
我目前的解决方法是进行两个不同的查询并合并结果,但是随着内容项目的数量变大,结果需要很长时间才能回来,因为我需要先获取所有项目才能订购它们,从而丢失所有(django) 分页结果的好处。
django - 在安装 Django-nonrel 之前是否需要卸载 Django 1.3?
我想在我的 Django 项目中使用多个数据库。我目前安装了 Django 1.3,并且我的项目使用 PostgreSQL。我想添加一个使用 MongoDB 的应用程序。
据我了解(如果我错了,请纠正我),为了支持 MongoDB,我需要 Django-nonrel,它是一个为非关系数据库提供支持的分支。
那么我需要做些什么才能让 MongoEngine 在我的 Django 项目中运行,同时仍然支持我的项目中的 Postgre 东西?
我应该只运行 Django-nonrel 包中的 setup.py 吗?卸载官方的 Django 1.3?我在这里很困惑。
python - 如何在 Mongoengine 中将元素添加到列表中
Mongoengine 可以通过追加元素将元素推送到列表
我想预先而不是附加,有没有办法?
同一问题的另一个替代问题..
我可以像这样按位置在列表中查询
有没有办法指定列表中的最后一个元素,比如 python 列表中的 -1 索引?
两个问题中的任何一个的答案都将解决我的问题。提前致谢。
python - 在 Mongoengine 中使用键作为值
我在 django 中将 mongoengine 用于 mongodb。
但是.. mongoengine 字段(如 StringField)使我以我不想要的方式构建模式。我的意思是,它严格要求我在知道它会是什么之前预先写好键名。例如...
万一我不知道将什么键名放入数据库中...
[添加]
正如您在上面看到的,密钥彼此非常不同.. 只是假设“我不知道提前将哪个密钥名称作为密钥放入文档中
正如 dcrosta 回答的那样。我正在寻找一种在不提前指定字段的情况下使用 mongoengine 的方法。
[/添加]
我怎样才能通过 mongoengine 做同样的事情?请给我这样的架构设计
[添加]
我不知道 'xxxx' 将作为键名。
对不起..我是韩国人,所以我的英语很尴尬。请给我一些知识。感谢您阅读本文。
[/添加]
django - 如何使用 MongoEngine 后端在 Django 中创建简单的 REST API?
Tastypie 看起来很有希望,但现在没有那么多了:
http://django-tastypie.readthedocs.org/en/latest/non_orm_data_sources.html
我应该使用 SimpleAPI 还是有更好的解决方案?
python - mongoengine ReferenceField 的奇怪之处
这是一个令人费解的问题,甚至难以命名,更不用说描述了。我将从基本事实开始,然后给出可能相关的背景信息。
考虑两个 mongoengine 文档模型:
以下是在我们的生产服务器上不一致地生成:AttributeError
如果我将调试代码放在错误位置之前,则type(foo.bar)
作为字符串进行评估会产生<class 'bson.dbref.DBRef'>
. 显然 aDBRef
没有bar_func
属性,但为什么DBRef
要返回 a 而不是 的实例Bar
?
进一步的调试代码显示以下条件在ReferenceField.__get__
函数中失败mongoengine/fields.py
:
但(pymongo.dbref.DBRef)
实际上bson.dbref.DBRef
,这似乎是一样的type(foo.bar)
!为什么会isinstance
失败?
这是事情变得非常奇怪的地方:
换句话说,与直接引用获得type(foo.bar)
的不同 。事实上,检查这两种类型会显示它们的功能和属性的不同内存位置。bson.dbref.DBRef
bson.dbref.DBRef
__dict__
注意:下面为了方便起见,我将调用返回的类型type(foo.bar)
fooDBRef
,以区别于bson.dbref.DBRef
.
为了进一步调试,我修改了DBRef
代码以添加一个元类,该元类在创建类型时检查系统模块DBRef
,并将这些模块的 ID 列表存储在一个额外的类属性中DBRef
。结果表明,创建时存在fooDBRef
的模块集与创建裸类型时存在的模块集完全不同。bson.dbref.DBRef
一个的所有模块 ID 都不同于另一个的所有模块 ID。
一些可能的相关因素:
- 发生此错误的服务器在 Apache 下运行 mod_wsgi。
- 服务器在 wsgi 下运行两个不同的 Django 站点(调用它们
site_a
和site_b
)。 - Foo 定义在 中
site_a.foo_app.models
,Bar 定义在site_b.bar_app.models
. site_a
settings.pysite_b.bar_app
在INSTALLED_APPS
.- 产生错误的请求由
site_a
. - 创建时有
site_b.*
模块,但没有模块。反之亦然。sys.modules
fooDBRef
site_a.*
bson.dbref.DBRef
- 错误
httpd reload
有时会消失一段时间,然后在 0-10 次尝试后返回。
任何人都可以帮我找出导致fooDBRef
不同的原因bson.dbref.DBRef
吗?
python - 如何用mongoengine“插入如果不存在则更新”?
我在 Django 中使用 mongoengine,
这是我的文档定义:
我想这样做:
给定 auser_id
和 a point
:
如果没有具有 this 的文档,则使用 anduser_id
创建一个user_id
并point
保存它;
否则用user_id
with更新文档point
。
我可以用 mongoengine 在一个语句中做到这一点吗?
python - 从 mongoengine 的文档中获取必填字段?
我希望能够获得我创建的文档所需的列表或某种类型的字段集。例如,这是我的文档:
^从这份文件中我应该收到:
作为必填字段的结果。这可能吗?如果是这样,我怎样才能达到预期的结果。
提前致谢!