标签: pymongo

如何使用PyMongo在MongoDB中创建新数据库?

我可以简单地通过连接到MongoDB服务器来创建新数据库,还是有另一种方法可以使用Python创建它?如果是这样,这是怎么做到的?

python mongodb pymongo

46
推荐指数
2
解决办法
5万
查看次数

如何关闭mongodb python连接?

我正在做一个将一些数据写入mongodb的python脚本.完成后,我需要关闭连接并释放一些资源.

如何在Python中完成?

python connection mongodb pymongo

44
推荐指数
2
解决办法
4万
查看次数

在日期时间的月,日,年...查询Mongodb

我正在使用mongodb,我以这种方式将datetime存储在我的数据库中

约会"17-11-2011 18:00"我存储:

date = datetime.datetime(2011, 11, 17, 18, 0)
db.mydatabase.mycollection.insert({"date" : date})
Run Code Online (Sandbox Code Playgroud)

我想做这样的请求

month = 11
db.mydatabase.mycollection.find({"date.month" : month})
Run Code Online (Sandbox Code Playgroud)

要么

day = 17
db.mydatabase.mycollection.find({"date.day" : day})
Run Code Online (Sandbox Code Playgroud)

谁知道怎么做这个查询?

python datetime mongodb pymongo mongodb-query

42
推荐指数
6
解决办法
8万
查看次数

Pymongo一直拒绝在27017拒绝连接

我试图运行一个简单的连接到pymongo但它一直返回,连接被拒绝

这是我尝试过的:

>>>from pymongo import Connection
>>>connection = Connection('localhost',27017)
Run Code Online (Sandbox Code Playgroud)

这就是我得到的

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pymongo-2.0.1_-py2.7-linux i686.egg/pymongo/connection.py", line 348, in __init__
 self.__find_node()
File "/usr/local/lib/python2.7/dist-packages/pymongo-2.0.1_-py2.7-linux- i686.egg/pymongo/connection.py", line 627, in __find_node
  raise AutoReconnect(', '.join(errors))
pymongo.errors.AutoReconnect: could not connect to localhost:27017: [Errno 111]     Connection refused
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

python pymongo

39
推荐指数
5
解决办法
6万
查看次数

插入后如何在PyMongo中获取对象id?

我正在做一个简单的插入Mongo ...

db.notes.insert({ title: "title", details: "note details"})
Run Code Online (Sandbox Code Playgroud)

插入便笺文档后,我需要立即获取对象ID.从插入返回的结果有一些关于连接和错误的基本信息,但没有文档和字段信息.

我发现了一些关于使用upsert = true的update()函数的信息,我只是不确定这是否是正确的方法,我还没有尝试过.

insert mongodb pymongo

39
推荐指数
5
解决办法
3万
查看次数

AutoReconnect异常"master已更改"

在这里理解正确的方法有些困难.

我有一个与三个成员(标准主从奴隶)的mongodb副本集的连接.当主人保持一致时,一切都正常.

pymongo.Connection(['host1:27017','host2:27018','host3:27019']).database_test
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当副本集主要降低时,这会开始抛出一个自动连接异常,即使在选择了新的主节点之后该异常也不会消失.

现在我知道需要捕获和处理这个异常,最有可能是等待新的主要选举.我遇到的问题似乎是,一旦选择了新的小学,它根本就不在乎.这个"主人已经改变"的例外情况不断涌现.

打印连接__dict__显示所有三个主机.

我已经尝试将replicasetkwarg 传递给连接,但这是一个意想不到的争论.

有没有理由说这种连接不会只是开始查询新的主要?

编辑:

现在显然在部署服务器上也出现了同样的问题.如果主服务器完全更改,则抛出自动连接异常,即使在选择新的主服务器之后也不会消失.

Pymongo是2.2版和mongodb版2.0.2.更改pymongo代码(mongouri与主机列表)中定义连接的方式无效.恢复服务的唯一方法是rs.stepDown()其他主机,直到原始主服务器再次成为主服务器.

mongodb pymongo

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

在Flask中将POST对象转换为适合mongodb的表示形式

我正在使用Flask和MongoDB.我试图将request.form的内容转换为适合通过PyMongo保存的内容.似乎应该经常出现一些现成的解决方案.

那么Flask给我的是:

ImmutableMultiDict([('default', u''), ('required': u'on'), ('name', u'short_text'), ('name', u'another'), ('submit', u'Submit')])
Run Code Online (Sandbox Code Playgroud)

而我希望得到的是接近这一点:

{
  'default': '',
  'name': ['short_text', 'another'],
  'required': true
}
Run Code Online (Sandbox Code Playgroud)

python post mongodb pymongo flask

38
推荐指数
4
解决办法
4万
查看次数

如何让pymongo的find()返回一个列表?

Pymongo用它返回一个游标我可以迭代结果并将它们的文档附加到列表中.有没有办法直接将结果文档放入列表中?谢谢

pymongo

37
推荐指数
1
解决办法
3万
查看次数

如何检查MongoDB实例的客户端是否有效?

特别是,我目前正在尝试使用以下函数检查与客户端的连接是否有效:

def mongodb_connect(client_uri):
    try:
        return pymongo.MongoClient(client_uri)
    except pymongo.errors.ConnectionFailure:
         print "Failed to connect to server {}".format(client_uri)
Run Code Online (Sandbox Code Playgroud)

然后我像这样使用这个函数:

def bucket_summary(self):
    client_uri = "some_client_uri"
    client = mongodb_connect(client_uri)
    db = client[tenant_id]
    ttb = db.timebucket.count() # If I use an invalid URI it hangs here
Run Code Online (Sandbox Code Playgroud)

如果给出了无效的URI,有没有办法在最后一行捕获并抛出异常?我最初认为这就是ConnectionFailure的用途(因此连接时可能会被捕获)但我错了.

如果我使用无效的URI运行程序,该程序无法运行,则发出KeyboardInterrupt会产生:

File "reportjob_status.py", line 58, in <module>
tester.summarize_timebuckets()
File "reportjob_status.py", line 43, in summarize_timebuckets
ttb = db.timebucket.count() #error
File "/Library/Python/2.7/site-packages/pymongo/collection.py", line   1023, in count
return self._count(cmd)
File "/Library/Python/2.7/site-packages/pymongo/collection.py", line 985, in _count
with self._socket_for_reads() as (sock_info, slave_ok):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/contextlib.py", …
Run Code Online (Sandbox Code Playgroud)

python mongodb pymongo

37
推荐指数
2
解决办法
3万
查看次数

在单个查询中从mongo中删除多个文档

我有一个mongo'_id'列表,我想删除它.目前我正在这样做

# inactive_users -->  list of inactive users 
for item in inactive_users:
    db.users.remove({'_id' : item})
Run Code Online (Sandbox Code Playgroud)

但我的问题是列表太大了......(它可能会超过100,000+).因此查询列表中的每个项目只会增加服务器上的负载.他们是一种在mongo查询中传递整个列表的方法,这样我就不必一次又一次地触发查询.

谢谢

mongodb pymongo

36
推荐指数
3
解决办法
4万
查看次数

标签 统计

pymongo ×10

mongodb ×8

python ×6

connection ×1

datetime ×1

flask ×1

insert ×1

mongodb-query ×1

post ×1