ожидается объект местоположения, массив местоположений не в правильном формате
Я потратил на выполнение такой прямой вещи. Я просто хочу сделать операцию CRUD на пользовательской модели, используя nodejs, mongoose, restify stack. Мой экземпляр монго на монголабе. Пользователь должен содержать поле "loc". Пользовательская схема выглядит следующим образом:
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;
остальные API, используемые для публикации, выглядит следующим образом:
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();
},
Теперь, когда я делаю вызов POST наcurl -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"
Я получаю следующую ошибку
{
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
}-
}-
}
Поле местоположения создает проблемы, так как вызов POST работает нормально, если я удалю поле loc из модели.
Ниже приведены хиты / испытания, которые я сделал: 1) ИзменитьuserSchema.index({loc:'2d'});
вuserSchema.index({loc:'2dsphere'});
2) Изменение схемы loc на все, что указано в Stackoverflow. Я хотел бы знать правильный способ определить это, хотя. 3) Передача жесткого кода 2d массива, но все равно он говоритLocation object expected, location array not in correct format"
какой формат требуется для этого?
Любая помощь в этом отношении с благодарностью. Благодарю.