objeto de ubicación esperado, matriz de ubicación no en formato correcto
He pasado haciendo algo tan sencillo. Solo quiero hacer una operación CRUD en un modelo de usuario usando nodejs, mongoose, restify stack. Mi instancia de mongo está en mongolab. El usuario debe contener un campo "loc". El esquema del usuario es el siguiente:
var mongoose = require('mongoose')
var Schema = mongoose.Schema;
var userSchema = new Schema( {
email_id : { type: String, unique: true },
password: { type: String},
first_name: String,
last_name: String,
age: String,
phone_number: String,
profile_picture: String,
loc: {
type: {},
coordinates: [Number]
}
});
userSchema.index({loc:'2d'});
var User = mongoose.model('user', userSchema);
module.exports = User;
El resto de la API utilizada para publicar es la siguiente:
create_user : function (req, res, next) {
var coords = [];
coords[0] = req.query.longitude;
coords[1] = req.query.latitude;
var user = new User(
{
email_id : req.params.email_id,
password: req.params.password,
first_name: req.params.first_name,
last_name: req.params.last_name,
age: req.params.age,
phone_number: req.params.phone_number,
profile_picture: req.params.profile_picture,
loc: {
type:"Point",
coordinates: [1.0,2.0] // hardcoded just for demo
}
}
);
user.save(function(err){
if (err) {
res.send({'error' : err});
}
res.send(user);
});
return next();
},
Ahora cuando hago una llamada POSTcurl -X POST http://localhost:3000/user --data "email_id=sdass@dfAadsfds&last_name=dass&age=28&phone_number=123456789&profile_picture=www.jakljf.com&longitude=1.0&latitude=2.0"
Obtuve el siguiente error
{
error: {
code: 16804
index: 0
errmsg: "insertDocument :: caused by :: 16804 location object expected, location array not in correct format"
op: {
email_id: "[email protected]"
password: "sdass123DadakjhdfsfadfSF45"
first_name: "shaun"
last_name: "dass"
age: "28"
phone_number: "123456789"
profile_picture: "www.jakljf.com"
loc: {
coordinates: [2]
0: 1
1: 2
-
type: "Point"
}-
_id: "55efc95e0e4556191cd36e5e"
__v: 0
}-
}-
}
El campo de ubicación está dando problemas ya que la llamada POST funciona bien si elimino el campo loc del modelo
A continuación se muestran los hits / ensayos que hice: 1) CambiaruserSchema.index({loc:'2d'});
auserSchema.index({loc:'2dsphere'});
2) Cambiar el esquema de loc a todo lo que se proporciona en Stackoverflow. Sin embargo, me gustaría saber la forma correcta de definir esto. 3) Pasando la matriz de hardcode 2d pero todavía diceLocation object expected, location array not in correct format"
¿Qué formato se requiere para esto?
Cualquier ayuda a este respecto es muy apreciada. Gracias.