2015-05-14 6 views
5

क्रियान्वित जब निम्न कुलMongoDB: जब geoNear कुल

db.Activities.aggregate([ 
    { 
    $geoNear: { 
     near: { coordinates: [ -73.99279 , 40.719296 ] }, 
     distanceField: "location.calculated", 
     spherical: true, 
    } 
    } 
]) 

क्रियान्वित मैं निम्न त्रुटि

uncaught exception: aggregate failed: { 
    "errmsg" : "exception: geoNear command failed: { ok: 0.0, errmsg: \"can't get query executor\" }", 
    "code" : 16604, 
    "ok" : 0 
} 

हो रही है जब मैं geoNear आदेश चला है, यह ठीक काम करता है क्वेरी निष्पादक नहीं मिल सकता है ।

db.runCommand({ 
    geoNear: "Activities" , 
    near: [ -73.99279 , 40.719296 ], 
    spherical: true, 
}) 

कोई विचार जो मैं कर रहा हूं?

उत्तर

2

समस्याओं हो सकता है:

  1. आप संग्रह Activities में एक "2dsphere" सूचकांक याद कर रहे हैं।
  2. संग्रह में कई भौगोलिक अनुक्रमित Activities

भागो मोंगो खोल में इस कोड को सभी अनुक्रमित

db.Activities.getIndexes() 
0

को देखने के लिए मैं एक ही मुद्दा था और एक समाधान है जो स्पष्ट नहीं था पाया हैं।

यहाँ सूचकांक है:

db.buildings.createIndex(
    {  
     'Address.CityCode': 1, 
     'Rooms.Categories': 1, 
     'Address.Coords': '2dsphere' 
    }, 
    { 
     background: true, 
     name: 'IX_Address.CityCode_Rooms.Category_Address.Coords_Published', 
     partialFilterExpression: { 'Rooms.Published': true } 
    } 
); 

तो मैं हो रही थी कि 2 की वजह से बातें "नहीं क्वेरी निष्पादक प्राप्त कर सकते हैं": के रूप में यह देखा है सूचकांक यौगिक है

  • और जैसा कि यह बताया गया है here आपकी क्वेरी में इंडेक्स
  • से सभी फ़ील्ड शामिल होना चाहिए दूसरा, इंडेक्स विकल्पों के साथ प्रयोग करने के बाद यह टर्न बाहर d 'partialFilterExpression' के रूप में अच्छी तरह से एक ही त्रुटि होती है कि ..
0

शायद तुम एक यौगिक सूचकांक, एक 2sphere और सूचकांक का एक और प्रकार है, कुछ की तरह है:

{ 
    "name: 1, 
    "location" : "2dsphere" 
}