Javascript 如何在mongoose模式中存储对象?

Javascript 如何在mongoose模式中存储对象?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,在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('mon

在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模式:

var address=Schema({ 街道:弦, 城市:String})


并且地址类型将是数组

保存数组的解决方案非常简单,请检查下面的代码

Adv.save({addresses: JSON.stringify(addresses)})
您的模式将与之类似

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

希望这可以解决您的问题

您实际上正在存储一个数组

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

您可以在personSchema中使用ref

var personSchema = Schema({
  _id     : Number,\n
  name    : String,
  surname : String,
  addresses : [{ref:Adress}]
});

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


mongoose.model('PersonSchema', personSchema);
mongoose.model('Adress', adress);

“ref”用于引用地址,并用于personSchema

这种存储模式的方法只有一个问题,比如我们想在这里查询地址数据?比如说,如果你得到了洛杉矶地震的结果列表,那么我们就无法查询那些你描述的是一个对象数组而不是一个对象的记录
var personSchema = Schema({
  _id     : Number,\n
  name    : String,
  surname : String,
  addresses : [{ref:Adress}]
});

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


mongoose.model('PersonSchema', personSchema);
mongoose.model('Adress', adress);