2012-11-14 89 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