objeto de localização esperado, matriz de localização não no formato correto
Passei fazendo uma coisa tão direta. Eu só quero fazer uma operação CRUD em um modelo de usuário usando nodejs, mangusto, restify stack. Minha instância mongo está no mongolab. O usuário deve conter um campo "loc". O esquema do usuário é o seguinte:
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;
o restante da API usada para postar é o seguinte:
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();
},
Agora, quando eu faço uma chamada 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"
Estou tendo o erro a seguir
{
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
}-
}-
}
O campo location está apresentando problemas, pois a chamada POST funciona bem se eu remover o campo loc do modelo
Abaixo estão os hits / ensaios que fiz: 1) AlteraruserSchema.index({loc:'2d'});
parauserSchema.index({loc:'2dsphere'});
2) Alterando o esquema do loc para tudo o que é fornecido no Stackoverflow. Eu gostaria de saber o caminho certo para definir isso. 3) Passando a matriz 2D de código rígido, mas ainda assim dizLocation object expected, location array not in correct format"
que formato é necessário para isso?
Qualquer ajuda a esse respeito é muito apreciada. Obrigado.