Python Couchbase向Spatialviewrows值添加引号
我在Couchbase写了一个地理空间视图:Python Couchbase向Spatialviewrows值添加引号,python,return-value,geospatial,couchbase,bounding-box,Python,Return Value,Geospatial,Couchbase,Bounding Box,我在Couchbase写了一个地理空间视图: function (doc, meta) { if(doc.type == 'Bar') { if(doc.position) { emit( { type: "Point", coordinates: [doc.position.latitude, doc.position.longitude] }, doc.companyID);
function (doc, meta) {
if(doc.type == 'Bar') {
if(doc.position) {
emit(
{
type: "Point",
coordinates: [doc.position.latitude, doc.position.longitude]
}, doc.companyID);
}
}
}
然后,我尝试通过边界框获取它们。Couchbase正确返回此框中的对象。我想将companyID作为值发出,并将其与另一个字符串进行比较,以确定请求是否被允许
问题是我得到的值在unicode中如下所示:
u'''CM-dummycompany'''
我从另一个cbobject获得的比较结果如下:
u'CM-dummycompany'
当我比较这些也失败了。
那么,你知道如何比较正确的方法吗
我用==
和is
试过了。我还尝试将其转换为字符串,然后进行比较,但这显然失败了,因为我使用了非格式字符,如äöü
或者更好的问题是,为什么要在排放值中添加双引号?好的,我在Couchbase问题跟踪程序中找到了解决方案: 因此,对于所有同样面临这一问题的人: 问题是,在空间视图中,值被双重编码。这意味着,如果返回一个数字,它将变成一个字符串。一个字符串变成一个带转义引号的字符串 实际上他们说它已经在3.0.1中修复了,但是我已经更新了,问题仍然存在 我的解决方法是通过
re
删除引号:
value = re.sub('"','',value)
只需知道,在发布这篇文章时,Couchbase中的地理空间视图被认为是实验性的,还没有准备好生产。至少在接下来的两个主要版本之前,官方支持不会到来