मैं चाहता हूं कि मेरी स्कीमा का location
फ़ील्ड डिफ़ॉल्ट रूप से छुपाया जाए। मैं इसे करने के लिए select: false
संपत्ति जोड़ा, लेकिन यह हमेशा जब दस्तावेज़ का चयन दिया जाता है ...मोंगोस का चयन करें: स्थान नेस्टेड ऑब्जेक्ट पर काम नहीं कर रहा है
var userSchema = new mongoose.Schema({
cellphone: {
type: String,
required: true,
unique: true,
},
location: {
'type': {
type: String,
required: true,
enum: ['Point', 'LineString', 'Polygon'],
default: 'Point'
},
coordinates: [Number],
select: false, <-- here
},
});
userSchema.index({location: '2dsphere'});
जब बुला:
User.find({ }, function(err, result){ console.log(result[0]); });
उत्पादन होता है:
{
cellphone: '+33656565656',
location: { type: 'Point', coordinates: [Object] } <-- Shouldn't
}
संपादित करें: स्पष्टीकरण (@alexmac के लिए धन्यवाद)
SchemaType चयन विकल्प को फ़ील्ड विकल्पों पर लागू नहीं किया जाना चाहिए। उदाहरण में आपने एक जटिल प्रकार की स्थिति परिभाषित की है और एक प्रकार के लिए चयन विकल्प जोड़ा है।
क्या findOne के बारे में है, यह इसे वापस या नहीं करता है? – libik
समस्या हल हो गई है। और हाँ, पाते हैं कि इसे भी वापस कर दिया :) – FrenchFalcon
अच्छा होगा अगर आपने अपना समाधान साझा किया। @MonymousFalcon – Cozzbie