Vous souhaitez demander une fonctionnalité ou signaler un bug ?
bug possible
Quel est le comportement actuel ?
impossible d'enregistrer les coordonnées en géospatial
Désolé de venir ici, mais je ne trouve pas de solution.
Voici mon schéma :
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
email: {
type: String,
required: true,
unique: true
},
password: {type: String, required: true},
name: {type: String, required: true},
type: {type: Boolean, default: false, required: true},
geo: {
type: { type: String, enum: "Point", default: "Point" },
coordinates: { type: [ Number ], default: [ 0,0 ] }
}
});
userSchema.index({geo: '2dsphere'})
const User = mongoose.model('User', userSchema);
module.exports = User
J'essaie d'insérer un nouvel enregistrement :
db.users.insert({email: '[email protected]', password: 'tebrwrw', name: 'teste', type: true, geo: { coordinates: [ 40, 5 ]} })
et j'obtiens cette erreur :
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 16755,
"errmsg" : "Can't extract geo keys: { _id: ObjectId('5a31d79f369885e770a989b7'), email: \"[email protected]\", password: \"tebrwrw\", name: \"teste\", type: true, geo: { coordinates: [ 40.0, 5.0 ] } } unknown GeoJSON type: { coordinates: [ 40.0, 5.0 ] }"
}
})
Veuillez mentionner votre version node.js, mongoose et MongoDB.
dernier
Citant les directives de contribution référencées lors de la création d'un nouveau problème :
Si vous avez une question sur Mongoose (pas un rapport de bogue), veuillez la poster sur StackOverflow ou sur Gitter
Vous êtes plus susceptible d'obtenir une réponse beaucoup plus tôt sur l'un ou l'autre de ceux-ci sans ajouter à un arriéré de bogues/fonctionnalités que les responsables doivent passer au crible ici.
Voici comment je fais, j'espère que cette aide
// in the schma declaration
'loc': { type: { type: String, enum: "Point", default: "Point" }, coordinates: { type: [Number], default: [0,0] } }
// after schema declaration*
schema.index( { loc: "2dsphere" } );
// and then, how I create it
model.loc = { type: "Point", coordinates: [newarena.lng, newarena.lat] };
@Inateno merci... c'est ça !!
Commentaire le plus utile
Voici comment je fais, j'espère que cette aide