mam schematu mangusta i model zdefiniowane następująco:Czy zastosowanie indeksu 2dsphere w schemacie mangusty wymusza pole lokalizacji, które będzie wymagane?
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);
Gdybym próbować:
var user = new User({ email: '[email protected]' });
user.save(function(err) {
if (err) return done(err);
should.not.exist(err);
done();
});
pojawia się komunikat o błędzie:
MongoError: Can't extract geo keys from object, malformed geometry?:{}
Pomimo polu lokalizacji w tym Schemat nie jest wymagany, wydaje się, że tak czy inaczej. Próbowałem dodać default: [0,0]
, który omija ten błąd, jednak wygląda na to, że jest trochę hackerem, ponieważ nie jest to dobre ustawienie domyślne, a schemat nie wymagałby od użytkownika, aby jego lokalizacja była przez cały czas.
Czy indeksy geoprzestrzenne z MongoDB/mangą sugerują, że indeksowane pole jest wymagane?
jest to coś, które mogą być dodawane do mangusta dla {type: [numer], indeks: ''} 2dsphere pola, więc zajmuje się automatycznie? –
zdecydowanie: https://github.com/LearnBoost/mongoose/issues/1668 – aaronheckmann
Świetne, okrzyki Aaron –