Javascript pycouchdb删除特定文档JS函数

Javascript pycouchdb删除特定文档JS函数,javascript,python,couchdb,Javascript,Python,Couchdb,我看过pycouchdb的文档。我还看到了一些用于从数据库中删除文档的js函数,因此我尝试为我的coach数据库重新创建它们。在csv中插入了一些1.2gb的数据,在数据库中插入了约12gb的数据之后,我想知道为什么。。。我试图对数据集进行一些查询 一切正常。但是当我试图删除特定的文档时,查询并没有像预期的那样工作。以下是查询: map_func = "function(doc) { if (doc['Year'] == 2015) emit(doc._id, null);}" map_

我看过pycouchdb的文档。我还看到了一些用于从数据库中删除文档的js函数,因此我尝试为我的coach数据库重新创建它们。在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函数会缓存整个数据,并且会出现内存溢出错误

为了帮助我更多地了解您的问题,您能告诉我选择pycouchdb是否有特别的原因吗?另外,您对couchdb的经验水平如何?我想评估不同类型的数据库,如SQL和NoSql。到目前为止,我已经比较了Mongodb和Sqlite3。我也在考虑评估couchdb。我有0以上的数据库经验,我阅读了文档和一些例子,并试图建立它。我插入了所有的数据,现在我想对数据库进行一些查询,查看每个查询的延迟等。在这种情况下,最好对您尝试使用couchdb测试的每件事情都写一些关于stackoverflow的问题,以确保您使用的是最有效的方法。例如,问题中的第二个临时查询将在执行时创建索引,这比在couchdb中将索引预定义为视图要慢得多。此外,根据您的用例,每年创建一个单独的数据库可能是有意义的。这将使删除年份非常快,因为您可以删除整个数据库。