Mongoose Schema for geoJson coordinates
express, javascript, mongodb, mongoose, node.js
Solution
Like this;
var DataSchema = new Schema({
properties: {
title: { type: String, required: true },
description: { type: String, required: true },
date: { type:Date, default:Date.now }
},
geometry: {
coordinates: { type: [Number], index: '2dsphere'}
}
});
Here is your update route handler, it converts coordinates string to number array;
app.post('/mountain_rescue', function (req, res) {
new rescueData({
properties: {
title: req.body.title, description: req.body.description
},
geometry: {
coordinates:req.body.coordinates.split(',').map(Number)
}
}).save(function (e, result) {
console.log(result);
});
res.redirect('/mountain_rescue');
});
Problem
I tried to create a schema for geojson but have had some problems with syntax for coordinates. Here's my current code: ``` var DataSchema = new Schema({ properties: { title: { type: String, required: true }, description: { type: String, required: true }, date: { type:Date, default:Date.now } }, geometry: { coordinates: [] } }); ``` I tried using `[]` (empty array), it creates `''` and `[Number,Number]` but it doesn't work. My question is: how do I have to construct my schema so as result I will get ``` coordinates: [ 3.43434343, 5.543434343 ] ``` without quotation marks, is this possible? Express Route ``` app.post('/mountain_rescue', function (req, res){ new rescueData({properties:{title: req.body.title, description: req.body.description},geometry:{ coordinates:req.body.coordinates}}).save(function (e, result) { console.log(result); }); res.redirect('/mountain_rescue'); }); ``` View ``` <div id="AddingPanel"> <form method="post" action="mountain_rescue" > Title:<input type="text" name="title"> Description:<textarea type="text" name="description"></textarea> Coordinates:<input type="text" name="coordinates"> <button type="submit">Add</button> </form> ```