标签: pymongo

如何在MongoDB中有效地存储和查询原始JSON流?

我想在MongoDB中有效地存储原始JSON流(通过Twitter或NYTimes),以便稍后我可以使用Lucene或Hadoop索引数据(NYTimes文章或推文/用户名).在Mongo中存储数据最聪明的方法是什么?我应该只管道JSON,还是有更好的东西?我只使用一台机器用于mongodb,有3个副本.

是否有一种高效(智能)的方式来编写查询或存储我的数据以更好地优化搜索查询?

python twitter mongodb pymongo

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

pymongo 64位无符号整数

我正在尝试使用pymongo在mongodb中插入一个64位无符号整数.整数是CRC64算法的输出.我试着跟随:

long(crc64(unicode(kw).encode('unicode-escape'))))
Run Code Online (Sandbox Code Playgroud)

如果我将其插入mongodb,它开始抱怨mongodb只支持64位整数.接下来我尝试将其转换为带符号的64位int,如下所示:

ctypes.c_int64(crc64(unicode(kw).encode('unicode-escape')))).value
Run Code Online (Sandbox Code Playgroud)

哪种工作,mongodb停止抱怨我的int的大小,但是当我看到mongodb中的数据时,我得到了这个:

{
    "_id" : {
        "floatApprox" : -5307924876159732000,
        "top" : 3059119730,
        "bottom" : 2651469802 },
    "keyword" : "redacted",
    "normal_hash" : { 
        "floatApprox" : -671156942315906300,
        "top" : 4138701393,
        "bottom" : 549001936
    } 
}
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?有没有办法将64位int作为一个int放入db(不关心它是有符号还是无符号.)

python unsigned mongodb pymongo

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

如何检查PyMongo连接仍然存在?

如何检查PyMongo连接仍然存在?有没有优雅的方法来做这个或只是尝试一个简单的查询和解析器结果?

python pymongo

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

使用PyMongo将几个文本文件加载到MongoDB中

我目前正在尝试将几个文本文件加载到MongoDB中(它们是JSON格式).

我尝试使用操作系统,但我似乎遇到了麻烦.我目前的方法是:

>>> import pymongo
>>> import os
>>> import json
>>> from pymongo import Connection
>>> connection = Connection()
>>> db = connection.Austin
>>> collection = db.tweets
>>> collection = db.tweet_collection
>>> db.tweet_collection
Collection(Database(Connection('localhost', 27017), u'Austin'), u'tweet_collection')
>>> collection
Collection(Database(Connection('localhost', 27017), u'Austin'), u'tweet_collection')
>>> tweets = db.tweets
>>> tweet = open(os.path.expanduser('~/Tweets/10_7_2012_12:09-Tweets.txt'),'r')
>>> for line in tweet:
...      d = json.loads(line)
...      tweets.insert(d)
... 
Run Code Online (Sandbox Code Playgroud)

用于插入单个推文.我希望能够打开多个文件并运行相同的代码片段,即将JSON转换为python词典的for循环,并自动将其插入到集合中.

有没有人有一个如何做到这一点的完整例子,并附有解释?

当我们讨论这个主题时,我试图使用对数据库理解不够的MongoDB(愚蠢和愚蠢,我知道),但MongoDB可以同时支持多个数据库实例,并存储集合,这些是集合的文件,你可以插入单个文件,对吗?

(另外,请忽略集合推文和tweet_collection之间的不一致..我只是在试验以获得更好的理解)

python mongodb pymongo

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

在python中编写一个简单的MongoDB模块

我已经开始为mongodb编写一个简单的模块来使用.我是python的新手,我写的代码有问题:

import pymongo


class mongoDB():

    conn = object

    def __init__(self):
        global conn
        self.conn = pymongo.Connection("localhost",27017)

    def CreateCollection(self,name =""):
        self.dbCollection  = conn.name
        return self.dbCollection

if __name__ == '__main__':
    database = mongoDB
    collection = database.CreateCollection("Hello")
Run Code Online (Sandbox Code Playgroud)

首先,我认为我的代码可能没有什么问题,如果你能发现它并纠正我的话.此外,我一直在得到这个错误:

collection = database.CreateCollection("Hello")
TypeError: unbound method CreateCollection() must be called with mongoDB      

instance as first argument (got str instance instead)
Run Code Online (Sandbox Code Playgroud)

我希望能够在类的构造函数中创建连接,然后有一个创建集合并返回它的方法,还有另一种插入删除和更新实体的方法

python mongodb pymongo

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

pymongo可以检测集合是否有上限?

我在Python中编写功能以确保mongodb集合的存在,类型和大小.大多数这些集合都有上限.我知道mongo shell包含mycollection.iscapped(),但pymongo似乎不支持此功能.

在pymongo的背景下,判断一个集合是否有上限集合的最佳方法是什么?

python mongodb pymongo

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

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

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

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

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

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

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

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

谢谢!

干杯,克里斯

mongodb pymongo mongoengine

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

如何使用Mongolab的$ oid和pymongo找到一份文件?

我正在尝试这样做:

event = coll.find_one({"_id": {"$oid": event_id}})
Run Code Online (Sandbox Code Playgroud)

其中event_id是ObjectId中的字符串:

event_id='50bbd48eefbdd2a1e83bc440'
Run Code Online (Sandbox Code Playgroud)

但事件最终是空的.我确定这不是你在pymongo中用ObjectId找到文件的方式,但是我已经搜索了一段时间并且没有弄清楚如何.任何帮助,将不胜感激.谢谢!

mongodb pymongo mlab

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

Pymongo是否内置验证规则?

我正在尝试根据模式验证插入的文档,并试图找到一种方法来验证插入的文档。

MongoEngine这样的图书馆说他们在做这项工作,但是有没有办法直接通过进行文件验证pymongo

validation mongodb pymongo

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

PYTHON-PYMONGO-带有$ or的无效语法

在添加$ or选项之前,我似乎无法使其与pymongo一起使用。我是否错过了一些明显的东西

dataout = releasescollection.find( { $or: [{"l_title":{"$regex": "i walk the line", "$options": "-i"}}, {"artistJoins.0.artist_name":{"$regex": "Johnny Cash", "$options": "-i"}}]}).sort('id', pymongo.ASCENDING).limit(25)

Traceback (most recent call last): File "<stdin>", line 1, in <module> File "discogs.py", line 51 dataout = releasescollection.find( { $or: [{"l_title":{"$regex": "i walk the line", "$options": "-i"}}, {"artistJoins.0.artist_name":{"$regex": "Johnny Cash", "$options": "-i"}}]}) ^ SyntaxError: invalid syntax

直接在mongo中运行以下内容可以工作,但在切换到python时我丢失了一些东西

db.releases.find( { $or: [{"l_title":{"$regex": "i walk the line", "$options": "-i"}}, {"artistJoins.0.artist_name":{"$regex": "Johnny Cash", "$options": "-i"}}]}).sort({'id':1}).limit(25)

python pymongo python-2.7 mongodb-query

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