小编KBo*_*rja的帖子

一次查询多个值pymongo

目前我有一个mongo文档,如下所示:

{'_id': id, 'title': title, 'date': date}
Run Code Online (Sandbox Code Playgroud)

我正在尝试的是在标题中搜索这个文档,在数据库中我有5ks项目并不多,但我的文件有100万个标题要搜索.

我已经确保标题作为集合中的索引,但是性能时间仍然非常慢(每1000个标题大约40秒,显而易见的是我正在对每个标题进行查询),这是我的代码到目前为止:

工作存储库创建:

class WorkRepository(GenericRepository, Repository):
    def __init__(self, url_root):
        super(WorkRepository, self).__init__(url_root, 'works')
        self._db[self.collection].ensure_index('title')
Run Code Online (Sandbox Code Playgroud)

程序的入口(是一个REST api):

start = time.clock()
for work in json_works: #1000 titles per request
    result = work_repository.find_works_by_title(work['title'])

    if result:
        works[work['id']] = result

end = time.clock()
print end-start

return json_encoder(request, works)
Run Code Online (Sandbox Code Playgroud)

和find_works_by_title代码:

def find_works_by_title(self, work_title):
    works = list(self._db[self.collection].find({'title': work_title}))

    return works
Run Code Online (Sandbox Code Playgroud)

我是mongo的新手,可能我犯了一些错误,任何建议?

python mongodb pymongo

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

标签 统计

mongodb ×1

pymongo ×1

python ×1