Mongoose: Geodatenabfrage einfügen

Erstellt am 14. Dez. 2017  ·  3Kommentare  ·  Quelle: Automattic/mongoose

Möchten Sie eine Funktion anfordern oder einen Fehler melden?

möglicher Fehler

Wie ist das aktuelle Verhalten?

Koordinaten können nicht in Geodaten gespeichert werden

Es tut mir leid, hierher zu kommen, aber ich kann keine Lösung finden.

Das ist mein Schema:

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

Ich versuche, einen neuen Datensatz einzufügen:

db.users.insert({email: '[email protected]', password: 'tebrwrw', name: 'teste', type: true, geo: { coordinates: [ 40, 5 ]} })

und ich bekomme diesen Fehler:

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 ] }"
        }
})

Bitte erwähnen Sie Ihre node.js-, Mongoose- und MongoDB-Version.
neueste

Hilfreichster Kommentar

So mache ich es, hoffe das hilft

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

Alle 3 Kommentare

Zitat aus den referenzierten Beitragsrichtlinien beim Erstellen einer neuen Ausgabe:

Wenn Sie eine Frage zu Mongoose (kein Fehlerbericht) haben, senden Sie sie bitte entweder an Gitter

Es ist wahrscheinlicher, dass Sie auf beides viel früher eine Antwort erhalten, während Sie nicht zu einem Rückstand von Fehlern/Funktionen beitragen, die die Betreuer hier durchsuchen müssen.

So mache ich es, hoffe das hilft

    // 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 danke ... ist es !!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen