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
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 !!
Hilfreichster Kommentar
So mache ich es, hoffe das hilft