У меня есть схема и модель мангуста, определяемая следующим образом:
var mongoose = require('mongoose')
, Schema = new mongoose.Schema({
email: {
index: {
sparse: true,
unique: true
},
lowercase: true,
required: true,
trim: true,
type: String
},
location: {
index: '2dsphere',
type: [Number]
}
})
, User = module.exports = mongoose.model('User', Schema);
Если я попытаюсь:
var user = new User({ email: '[email protected]' });
user.save(function(err) {
if (err) return done(err);
should.not.exist(err);
done();
});
Получаю сообщение об ошибке:
MongoError: Can't extract geo keys from object, malformed geometry?:{}
Несмотря на то, что поле местоположения в этой схеме не требуется, оно, похоже, действует как таковое. Я попытался добавить default: [0,0]
, который обошел эту ошибку, однако это похоже на взломанный, поскольку это явно не очень хороший вариант, и в идеале схема не требует, чтобы пользователь всегда имел место.
У геопространственных индексов с MongoDB/mongoose подразумевается, что требуется индексировать поле?