Как сохранить объект в схеме мангуста?

1

В node.js у меня есть три переменные:

var name = 'Peter';
var surname = 'Bloom';
var addresses = [
    {street: 'W Division', city: 'Chicago'},
    {street: 'Beekman', city: 'New York'},
    {street: 'Florence', city: 'Los Angeles'},
];

И схема:

var mongoose = require('mongoose')
  , Schema = mongoose.Schema;

var personSchema = Schema({
  _id     : Number,
  name    : String,
  surname : String,
  addresses : ????
});

Какой тип и как его использовать в схеме? Как лучший способ для этого?

Теги:
mongoose

4 ответа

0
Лучший ответ

Вы должны создать другую схему мангуста:

var address = Schema ({street: String, city: String});

И типом адресов будет Array <address>

1

Решение для сохранения массива очень просто, пожалуйста, проверьте код ниже

Adv.save({addresses: JSON.stringify(addresses)})

Ваша схема будет выглядеть так

var personSchema = Schema({
 _id     : Number,
 name    : String,
 surname : String,
 addresses : String,
});
  • 0
    только одна проблема с этим способом хранения схемы, скажем, мы хотели бы иметь возможность запрашивать данные адреса здесь? например, получить список результатов по Лос-Анджелесу, тогда мы не сможем запросить эти записи.
0

Фактически вы храните массив.

var personSchema = Schema({
  _id     : Number,
  name    : String,
  surname : String,
  addresses : []
});
-1
//Your Schema is very easy like below and no need to define _id( MongoDB will automatically create _id in hexadecimal string)
var personSchema = Schema({
  name    : String,
  surname : String,
  addresses : [{
    street: String,
    city: String
  }]

var addresses= [
    {street: 'W Division', city: 'Chicago'},
    {street: 'Beekman', city: 'New York'},
    {street: 'Florence', city: 'Los Angeles'}
];
//Saving in Schema
var personData = new personSchema ({
  name:'peter',
  surname:'bloom',
  addresses:addresses  
})
personData.save();

Надеюсь, это может решить вашу проблему

Ещё вопросы

Сообщество Overcoder
Наверх
Меню