pycouchdb删除特定文档JS函数

2024-04-26 03:17:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我看过库奇达的文档。我还看到了一些用于从数据库中删除文档的js函数,所以我尝试为couch数据库重新创建它们。在插入了一些数据(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)

这里的问题是数据库.all()函数缓存整个数据,我得到内存溢出错误。你知道吗


Tags: 文档数据库truemapdbdociftime