2014-10-03 92 views
0

是否有我不知道這會導致此查詢失敗的原因?爲什麼這個MongoDB查詢不起作用?

具體是導致查詢失敗的features: {$in: featuresArray}部分。

Collection.find({ 
    features: { 
    $in: featuresArray 
    }, 
    location: { 
    $near : { 
     $geometry : { 
     type : 'Point', 
     coordinates: [long, lat] 
     } 
    } 
    }}, 
{ 
    sort: { 
    score: -1 
    } 
});` 
+0

你怎麼定義featureArray? – anhlc 2014-10-03 07:14:42

+0

排序規格在這裏是錯誤的。但是,您遇到的錯誤是什麼讓您認爲在功能字段中添加搜索會導致問題?可以在您的帖子中使用更多信息。 – 2014-10-03 07:20:15

+0

這是使用JS框架,而不是在shell中,所以是,'sort()'是不同的。 – JohnAllen 2014-10-03 15:26:01

回答

2

隨着文檔的db.collection.find說,在找到第二個參數應該是投影 - 即。所有字段返回結果。但是在這裏,您正在使用第二個參數來排序結果。

我認爲它應該像做:

Collection.find({ 
    features: { 
     $in: featuresArray 
    }, 
    location: { 
     $near : { 
      $geometry : { 
       type : 'Point', 
       coordinates: [long, lat] 
      } 
     } 
    } 
}).sort({ 
    score: -1 
}); 
+0

你可以刪除你的答案嗎?我意識到自己愚蠢的錯誤並修復了我的代碼。添加了一個字段,因此需要執行'features.name':featuresArray。 – JohnAllen 2014-10-03 15:51:14

+0

這是使用JS框架,而不是在shell中,所以是的,sort()是不同的 – JohnAllen 2014-10-03 15:51:32