简体   繁体   English

如何在猫鼬模式中存储对象?

[英]How to store object in mongoose schema?

In node.js I have three variables: 在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'},
];

And schema: 和架构:

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

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

What type and how do I use it in schema? 什么类型以及如何在模式中使用它? How is the best way for this? 最好的方法是什么?

The Solution to save array is much simple,Please check below code 保存数组的方法很简单,请检查下面的代码

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

Your schema will look like it 您的架构看起来像它

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

You must create another mongoose schema: 您必须创建另一个猫鼬模式:

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

And the type of addresses will be Array< address > 并且地址的类型将为Array <address>

You are actually storing an array. 您实际上是在存储数组。

var personSchema = Schema({
  _id     : Number,
  name    : String,
  surname : String,
  addresses : []
});
//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();

Hope this may solve your issue 希望这可以解决您的问题

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM