我试图在一次通话中从couchbase中删除多个键。我们在couchbase中有类似bulkGet的删除吗?
答案 0 :(得分:1)
批量删除是definitely there,但它要求您将要删除的KEY作为参数列表进行删除。因此,可能无法在一次调用中删除所有必需的记录。基本上,你要做的是(refer this link for an example):
但是,我相信:服务器上的删除应该在服务器上删除,而不是像上面那样需要三个步骤。
在这方面,我认为老式的RDBMS更好你所需要做的就是从数据库中解雇SQL查询,例如"匹配%"'。
幸运的是,CouchBase中有类似于SQL的东西叫做N1QL(发音为nickle)。我不知道JavaScript(和其他语言语法),但这是我在python中做到的。
layer_name_prefix = cb_layer_key + "|" + "%"
query = ""
try:
query = N1QLQuery('DELETE from `test-feature` b where META(b).id LIKE $1', layer_name_prefix)
cb.n1ql_query(query).execute()
except CouchbaseError, e:
logger.exception(e)
要实现同样的目的:如果您要存储'类型',则备用查询可以如下所示:和/或其他元数据,例如' parent_id'。
但我更喜欢使用查询的第一个版本,因为它在密钥上运行,我相信Couchbase必须有一些内部索引才能在密钥(和其他元数据)上更快地操作/查询。