我正在使用.Net Couchbase SDK(CouchbaseNetClient软件包)来创建一个新文档,同时我为该文档设置了到期值。有效期(TTL)值设置正确并且也可以正常工作。
问题陈述-创建文档后,我需要更新其使用N1QL的某些内容。这里出现问题,它将文档过期值重置为0。有什么方法可以在更新文档内容时不重置文档过期。
答案 0 :(得分:4)
任何具有N1QL的突变(UPDATE,INSERT,UPSERT,MERGE)将始终将到期值设置为0。
在路线图上设置通过N1QL的到期时间。
答案 1 :(得分:3)
如@vsr所述,您当前无法通过N1QL DML语句维护文档的TTL。 在6.0(及更早版本)中,您可以插入带有到期时间的文档的唯一方法是通过SDK。
但是,您可以使用N1QL作为方法,或者如果要在SDK级别上对其进行操作,则可以获取TTL。
例如:Select meta().expiration from bucket where meta().id = "xyz"