MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

नेस्टेड सरणी फ़ील्ड के लिए Mongodb 2dsphere अनुक्रमणिका

आपके द्वारा प्रदान किया गया दस्तावेज़ मुझे अच्छा लगता है, मैंने आपके दस्तावेज़ के संक्षिप्त संस्करण के साथ एक साधारण परीक्षण भी किया और यह मेरे लिए काम करता है।

"_id" : ObjectId("530cb07c009d8c323b477957"),
        "time_from" : ISODate("2014-02-25T15:02:20.714Z"),
        "checkin" : [
                {
                        "user_id" : 1,
                        "loc" : {
                                "type" : "Point",
                                "coordinates" : [
                                        73.43,
                                        42.22
                                ]
                        }
                }
        ]

db.testGeo.ensureIndex( { "checkin.loc" : "2dsphere"  } );

इसलिए मेरा सुझाव है कि संग्रह में अन्य दस्तावेजों की जाँच करें, उनमें से कुछ सूचकांक के लिए विकृत हो सकते हैं। यह भी सुनिश्चित करें कि आपके निर्देशांक सरणी तत्व तार नहीं हैं। क्योंकि यह दस्तावेज़ 2dsphere अनुक्रमणिका के लिए मान्य नहीं है:

"_id" : ObjectId("530cb07c009d8c323b477957"),
            "time_from" : ISODate("2014-02-25T15:02:20.714Z"),
            "checkin" : [
                    {
                            "user_id" : 1,
                            "loc" : {
                                    "type" : "Point",
                                    "coordinates" : [
                                            "73.43",
                                            "42.22"
                                    ]
                            }
                    }
            ]

कृपया निर्देशांक तत्वों के उद्धरण चिह्नों पर ध्यान दें जो उन्हें तार बनाते हैं।

टिप्पणी का उत्तर दें: मोंगो प्रति संग्रह केवल एक भू-स्थानिक सूचकांक की अनुमति देता है। तो आपको अपने रन कमांड के लिए संपूर्ण फ़ील्ड पथ निर्दिष्ट करने की आवश्यकता नहीं है। संग्रह का नाम ही काफी है। यदि संग्रह का नाम checkin_20140222 . है तो यह आपके लिए काम करेगा

db.runCommand( { geoNear: 'checkin_20140222', near: {type: "Point", coordinates: [73.43, 42.22]}, spherical: true, maxDistance: 40000})

आशा है कि यह मदद करेगा!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoDB संग्रह से सरणी कैसे प्राप्त करें?

  2. java.lang.NoClassDefFoundError MongoDB ड्राइवर का उपयोग करते समय

  3. अजीब प्रतिक्रिया जब Node.js . में Mongoose का उपयोग कर MongoDB में दस्तावेज़ ढूँढना

  4. जहां सी # का उपयोग कर MongoDB संग्रह में एक एम्बेडेड दस्तावेज़ के खंड क्वेरी में प्रोजेक्शन

  5. Amazon EC2 में Ubuntu 11.04 पर MongoDB ठीक से स्थापित नहीं है