示例#1
0
 def _set(self, key, value, rev=None):
     if self.read_only:
         raise FamWriteError("You can't write to this database")
     try:
         if rev is not None:
             result = self.bucket.upsert(key, value, cas=rev)
         else:
             result = self.bucket.upsert(key, value)
         return ResultWrapper(key, result.cas, value)
     except KeyExistsError as e:
         raise FamResourceConflict("key alreday exists in couchbase: %s - %s" % (key, e))
示例#2
0
    def _n1ql_with_rev(self, query, *args, **kwargs):
        query = N1QLQuery(query, *args, **kwargs)
        rows = self.bucket.n1ql_query(query)
        results = []
        bucket_name = None

        for row in rows:
            if bucket_name is None:
                keys = row.keys()
                keys.remove("id")
                keys.remove("cas")
                bucket_name = keys[0]

            rev = row["_sync"]["rev"]
            results.append(ResultWrapper(row["id"], rev, row[bucket_name]))

        return results
示例#3
0
    def _n1ql(self, query, *args, **kwargs):
        query = N1QLQuery(query, *args, **kwargs)
        rows = self.bucket.n1ql_query(query)
        rows_list = list(rows)

        return [ResultWrapper(row["$1"]["id"], row["$1"]["cas"], row["test"]) for row in rows_list]
示例#4
0
 def _get(self, key, class_name=None):
     try:
         result = self.bucket.get(key)
     except NotFoundError as e:
         return None
     return ResultWrapper(key, result.cas, result.value)