如何将json对象的数组保存到mongoose?
我试图将对象数组保存到mongoose模式,但它无法将数据加载到laptop
模式中我只看到一个包含id
的插入。如何将json对象的数组保存到mongoose模式?
controller.js
var laptopData = [
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'HP'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'HP'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'}
]
var laptop = new Laptop({laptopData});
laptop.save(function(err) {
// we've saved the dog into the db here
if (err) throw err;
});
schema.js
'use strict';
var mongoose = require('bluebird').promisifyAll(require('mongoose'));
var LaptopSchema = new mongoose.Schema({
name: String,
ram:String,
harddrive:String,
Brand: String
});
module.exports = mongoose.model('Laptop', LaptopSchema);
回答如下:
您应该单独创建对象并保存它们。你无法传递这样的数组。使用行中的东西
var laptopData = [...];
for(var laptopItem in laptopData){
new Laptop(laptopData[laptopItem])
.save()
.catch((err)=>{
console.log(err.message);
});
}
如何将json对象的数组保存到mongoose?
我试图将对象数组保存到mongoose模式,但它无法将数据加载到laptop
模式中我只看到一个包含id
的插入。如何将json对象的数组保存到mongoose模式?
controller.js
var laptopData = [
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'HP'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'HP'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'},
{ name: 'Hp probook 15.1',cpu:'2.4GHZ' ,ram: '4GB', harddrive: '160GB',Brand:'Hp'}
]
var laptop = new Laptop({laptopData});
laptop.save(function(err) {
// we've saved the dog into the db here
if (err) throw err;
});
schema.js
'use strict';
var mongoose = require('bluebird').promisifyAll(require('mongoose'));
var LaptopSchema = new mongoose.Schema({
name: String,
ram:String,
harddrive:String,
Brand: String
});
module.exports = mongoose.model('Laptop', LaptopSchema);
回答如下:
您应该单独创建对象并保存它们。你无法传递这样的数组。使用行中的东西
var laptopData = [...];
for(var laptopItem in laptopData){
new Laptop(laptopData[laptopItem])
.save()
.catch((err)=>{
console.log(err.message);
});
}