pycouchdb删除JS函数的具体文件

时间:2015-02-21 17:57:46

标签: javascript python couchdb

我已经看过py-couchdb的文档。我还看到了一些用于从数据库中删除文档的js函数,所以我尝试为我的沙发数据库重新创建它们。插入一些数据后(在csv中为1.2gb,在数据库中为~12gb,我想知道为什么......)我试图对数据集进行一些查询。

选择还可以。但是,当我尝试删除特定文档时,查询无法按预期工作。以下是查询:

  map_func = "function(doc) { if (doc['Year'] == 2015) emit(doc._id, null);}"
  map_func_2 = "function(doc) { if (doc['Year'] == 2015) emit(null, doc._rev);}"
  map_func_3 = "function(doc) { if (doc['Year'] == 2015) emit(doc._deleted='true',null);}"
  map_func_4 = "function(doc) { if (doc['Year'] == 2015) emit(doc.deleted='true',null);}"
  map_func_5 = "function(doc) { if (doc['Year'] == 2015) emit(doc.deleted=true,null);}"
  map_func_6 = "function(doc) { if (doc['Year'] == 2015) emit(doc._deleted:'true',null);}"

然后我调用了每个函数并检查了文档是否被删除(来自map_func)。

  print "Quering for Deleting Year = 2015"
  t = time.time()
  db.temporary_query(map_func_3)
  print float(time.time() - t)

  print "Quering for Year = 2015"
  t = time.time()
  print len(list(db.temporary_query(map_func)))
  print float(time.time() - t)

但即使他们中的任何一个实际上都没有删除或隐藏指定的文档。我还尝试了另一种方法,从python中删除。

for doc in db.all(as_list=True):
      if doc['Year'] == 2015:
          db.delete(doc)

这里的问题是Database.all()函数缓存整个数据并且我得到内存溢出错误。

0 个答案:

没有答案