标签: mongoengine

Mongoengine 事务如何进行?

我该如何做才能进行涉及 mongoengine 上两种以上不同类型文档更新的交易?

python mongodb mongoengine

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

为什么utf8不能在Mongodb + mongoengine + django下工作?

Ubuntu 10.04.3 LTS mongodb-1.2.2-1ubuntu1.1 django 1.3 mongoengine-0.5.2 pymongo-2.1.2

模型:

class User(Document):
    email = StringField(required=True)
    first_name = StringField(max_length=50)
    last_name = StringField(max_length=50)


class Comment(EmbeddedDocument):
    content = StringField()
    name = StringField(max_length=120)

class Post(Document):
    title = StringField(max_length=120, required=True)
    author = ReferenceField(User)
    tags = ListField(StringField(max_length=30))
    comments = ListField(EmbeddedDocumentField(Comment))

class TextPost(Post):
    content = StringField()

class ImagePost(Post):
    image_path = StringField()

class LinkPost(Post):
    link_url = StringField()
Run Code Online (Sandbox Code Playgroud)

试图保存标题中包含"é"的帖子:

 john = User(email='jdoe@example.com', first_name='John', last_name='Doe')
    john.save()


post1 = TextPost(title='Fun with MongoEnginée', author=john)
post1.content = 'Took a look at MongoEngine today, looks …
Run Code Online (Sandbox Code Playgroud)

django utf-8 pymongo mongoengine

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

mongoengine如何通过使用列表中的包含查询?

如果我有一个列表字段类似于下面的集合.

class Post(Document):
   tags = ListField(StringField())
Run Code Online (Sandbox Code Playgroud)

假设我有一个贴有标签的帖子:有趣,有趣.

如果我想搜索带有标签的帖子满足任何搜索条件,我该怎么办?

如果我将搜索词放在"有趣"和"奇妙"中,则上面的帖子应该在结果集中.

我试图阅读文档,但似乎没有这样的运算符."all"和"in"相似但不能执行我想要的.

谢谢!

干杯,克里斯

mongodb pymongo mongoengine

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

在mongoDB中通过键获取列表中的字典(mongoengine)

我在我的Flask应用程序(mongoengine)中使用mongoDB(mongoHQ).我有一个Document看起来像这样:

{items: [{id: 1}, {id: 2}, {id: 3}]}
Run Code Online (Sandbox Code Playgroud)

有没有达到的一种方式,例如,dictid: 1在一个单一的查询

目前我正在通过items一个next()声明循环列表,我希望有一个更明智的解决方案.谢谢

python mongodb mongoengine

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

Mongoengine引用另一个文档的字段

可以这样做吗?

class Doc1:
    fieldd1 = StringField()

class Doc2:
    fieldd2 = ReferenceField(Doc1.fieldd1)
Run Code Online (Sandbox Code Playgroud)

或者我应该只引用Doc,然后在需要时获取字段信息

django mongodb mongoengine

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

NameError:未定义名称"产品"

我正在使用Django和MongoEngine开发一个简单的应用程序.我在后台运行mongod但我无法在Python shell中创建任何新元素(使用Product模型).我知道这一定是一个简单的错误,但我找不到它.

我的文件的层次结构如下:

products/
- __init.py__
- models.py
- views.py
__init__.py
manage.py
settings.py
urls.py
wsgi.py
Run Code Online (Sandbox Code Playgroud)

Python shell

>>> Product(name="test").save
Traceback (most recent call last):
  File "<console>", line 1, in <module>
NameError: name 'Product' is not defined
Run Code Online (Sandbox Code Playgroud)

Models.py

from mongoengine import *

class Product(Document):
    name = StringField(max_length=200)
Run Code Online (Sandbox Code Playgroud)

Settings.py

 # Django settings for project.

from mongoengine import connect

connect('db1')

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
    # ('Your Name', 'your_email@example.com'),
)

MANAGERS = ADMINS

# MongoDB settings
MONGODB_DATABASES = { …
Run Code Online (Sandbox Code Playgroud)

python mongoengine

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

Mongoengine LongField溢出错误

我有一个Text模型;

class Text(db.Document):
    siphash_value = db.LongField()
Run Code Online (Sandbox Code Playgroud)

然后我用siphash lib创建一个哈希.(https://github.com/majek/pysiphash)

此lib将字符串转换为长值,如12398370950267227270L

如果我尝试将文档保存到我的数据库;

Text(siphash_value=12398370950267227270L).save()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

OverflowError: MongoDB can only handle up to 8-byte ints
Run Code Online (Sandbox Code Playgroud)

mongodb mongoengine flask-mongoengine

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

如何在Mongoengine Python中获取字典对象?

在查询pymongo时,我得到一个字典对象,可以直接作为对api请求的响应发送.mongoengine在查询数据库时返回Document对象的位置.因此,我必须解析每个对象,然后才能将其作为api中的响应发送.

这是我在mongoengine中查询的方式.

users = User.objects(location = 'US')

这将返回一个BaseQueryList包含User模型类型对象的对象.相反,我需要它应该返回一个用户的字典类型对象列表.

python pymongo mongoengine

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

直接在django中使用pymongo

我正在使用Django和MongoDB构建一个网站.有2个,我们可以用它来连接流行的API框架DjangoMongoDB,一个是mongoengine,另一个是django-mongodb-engine.

因为mongoengine不再支持Django 最新的Document,并且django-mongodb-engine需要另一个django-nonrel使开发环境有点复杂的软件包.

我想知道,如果我可以使用Pymongo连接DjangoMongoDB直接.

有没有人可以分享相同的经验?以及如何setting.py在Django中设置db in 以使db公开?

django mongodb pymongo mongoengine django-mongodb-engine

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

使用认证数据库的mongoengine

我不知道如何连接到使用mongoengine的身份验证数据库的mongodb数据库.

在我需要的命令提示符上mongo hostname:27017/myApp -u "test" -p "test" --authenticationDatabase admin,但是我没有看到我将其作为mongoengine的参数传递给我,所以我使用admin数据库进行身份验证但是为我的模型连接到myApp数据库?

我相信这是在PyMongo指南中解释的地方:

https://api.mongodb.com/python/current/examples/authentication.html

>>> from pymongo import MongoClient
>>> client = MongoClient('example.com')
>>> db = client.the_database
>>> db.authenticate('user', 'password', source='source_database')
Run Code Online (Sandbox Code Playgroud)

我找到了将此添加到mongoengine的pull请求:

https://github.com/MongoEngine/mongoengine/pull/590/files

看起来你只是authentication_source作为一个参数添加connect喜欢connect(authentication_source='admin').如果记录得更好,那就太好了.

http://docs.mongoengine.org/apireference.html?highlight=authentication_source

python mongodb mongoengine

1
推荐指数
2
解决办法
2769
查看次数