2016-05-18 2 views
1

У меня есть создать коллекцию на MongoDB с указательным гео «2dsphere» и у меня есть элемент с этой структурой в моей colelction:

{ 
    "_id" : ObjectId("573b2416130380fbf20c2610"), 
    "location" : { 
     "type" : "Point", 
     "coordinates" : [ -73.856077, 40.848447 ] 
    }, 
    "marca" : "smart", 
    "stato" : "libera" 
} 

Как я могу создать схема в мангусте для этой структуры?

ответ

1

Предполагая, что коллекция называется Location, вы можете либо определить свою схему как:

var locationSchema = new mongoose.Schema({ 
    marca: { type: String, required: true }, 
    stato: { type: String, required: true }, 
    loc: { 
     type: { 
      type: "String", 
      required: true, 
      enum: ['Point', 'LineString', 'Polygon'], 
      default: 'Point' 
     }, 
     coordinates: [Number] 
    } 
}); 

locationSchema.index({'loc': '2dsphere'}); 
var Location = mongoose.model('Location', locationSchema); 

или с index:

var locationSchema = new mongoose.Schema({ 
    marca: { type: String, required: true }, 
    stato: { type: String, required: true }, 
    loc: { 
     type: { 
      type: "String", 
      required: true, 
      enum: ['Point', 'LineString', 'Polygon'], 
      default: 'Point' 
     }, 
     coordinates: [Number], 
     index: { type: '2dsphere', sparse: true } 
    } 
}); 
var Location = mongoose.model('Location', locationSchema);