2012-11-14 92 views
2

从我的集合中,我只想返回记录中具有位置或地点信息(包含坐标)的记录。因此,如果两个条件都不为空,那么它将检索两个或两个字段,如果两个条件都不为空。Mongo集合查询和运算符

我的查询是这样的,到目前为止:

 cursor = coll.find({"$or" : [{"place.bounding_box.type" : {"$ne" : None }}, {"coordinates.type" : {"$ne" : None }}]}, {"coordinates.coordinates" :1}, 
       {"place.bounding_box.coordinates" : 1}, tailable = True, timeout = False) 

但我得到这个pymongo错误:

raise TypeError("skip must be an instance of int") 
TypeError: skip must be an instance of int 

我可以查询到单独而不是在一个连接查询按上述方式工作。

感谢

回答

2

这个错误听起来像你正在结果光标上做一个.skip(“字符串”)。

此外,你应该有一个阅读$存在以及。

+0

我认为这是因为我做了:{“coordinates.coordinates”:1}, {“place.bounding_box.coordinates”:1}而不是{“coordinates.coordinates”:1,“place.bounding_box.coordinates”:1 }。正如你在http://stackoverflow.com/questions/13385986/running-multiple-queries-in-mongo的回答中提到的 – user94628

1

我不熟悉pymongo,但MongoDB的不支持联接... 您将需要单独运行这两个查询,并加入结果。

+0

因此,尽管我想要返回同一记录中的子字段,但我仍然需要运行这两个查询并加入结果? – user94628