Mongoose: Insertion de requête géospatiale

Créé le 14 déc. 2017  ·  3Commentaires  ·  Source: Automattic/mongoose

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

Commentaire le plus utile

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] };

Tous les 3 commentaires

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 !!

Cette page vous a été utile?
0 / 5 - 0 notes