您的位置:首页 > Web前端 > Node.js

【Node.js】mongoose教程04--存储

2016-06-05 17:03 465 查看
Sodino
文章目录1. 数据准备
2. 单条数据存储
3. 多条数据批量存储
请确定已阅读【Node.js】mongoose教程—Schema与ModelGitHub源码链接:sodino#MongoDemo

数据准备

为了对Phone进行存储以及后续的查询,需要提前准备一些手机型号的数据以供练习使用。
为此准备了如下5个手机型号的数据:
123456789101112131415161718192021222324252627
var Phone = mongoose.model('Phone', phoneSchema);var arrPhone = [];var raw;raw = require('./raw.iPhoneSE.json');var iPhoneSE = new Phone(raw);iPhoneSE.printBrief();arrPhone.push(iPhoneSE);  raw = require('./raw.huawei.Mate8.json');var huaweiMate8 = new Phone(raw);huaweiMate8.printBrief();arrPhone.push(huaweiMate8);  raw = require('./raw.mi.max.json');var miMax = new Phone(raw);miMax.printBrief();arrPhone.push(miMax);  raw = require('./raw.samsung.S6Edge.json');var s6Edge = new Phone(raw);s6Edge.printBrief();arrPhone.push(s6Edge);  raw = require('./raw.nokia1000.json');var nokia1000 = new Phone(raw);nokia1000.printBrief();arrPhone.push(nokia1000);
由此,控制台打印如下:
1234567
D:\desk\JavaScript\MongoDemo>node app.js---printBrief()---------------------------------------iPhone SE ¥4999Huawei Mate8 ¥4988Mi Max ¥1650Samsung S6 Edge ¥3850Nokia 1000 ¥200
其中,各个
.json
的文件内容如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
// raw.iPhoneSE.json{  "device"    : "iPhone SE",  "isSmart"   : "true",  "releaseTime" : "2016-03-21 10:00:00",  "price"   : 4999,  "apps"    : [{"name" : "Safari"}, {"name" : "Map"}, {"name" : "Tinder"}],  "manufacturer": {    "name"  : "Apple",    "country" : "The United States"  }}// raw.huawei.Mate8.json{  "device"    : "Huawei Mate8",  "isSmart"   : "true",  "releaseTime" : "2015-12-09 10:00:00",  "price"   : 4988,  "apps"    : [{"name" : "Alipay"}, {"name" : "CMB"}, {"name" : "NetEase Music"}, {"name" : "Tinder"}, {"name" : "WeChat"}, {"name" : "Gaode Map"}],  "manufacturer": {    "name"  : "Huawei",    "country" : "China"  }}// raw.mi.max.json{  "device"    : "Mi Max",  "isSmart"   : "true",  "releaseTime" : "2015-04-17 10:00:00",  "price"   : 1650,  "apps"    : [{"name" : "MiChat"}, {"name" : "Didi"}, {"name" : "CMB"}],  "manufacturer": {    "name"  : "Mi",    "country" : "China"  }}// raw.samsung.S6Edge.json{  "device"    : "Samsung S6 Edge",  "isSmart"   : "true",  "releaseTime" : "2015-12-09 10:00:00",  "price"   : 3850,  "apps"    : [{"name" : "Taobao"}, {"name" : "Didi"}, {"name" : "Radio"}, {"name" : "360 Camera"}],  "manufacturer": {    "name"  : "Samsung",    "country" : "South Korea"  }}// raw.nokia1000.json{  "device"    : "Nokia 1000",  "isSmart"   : "false",  "releaseTime" : "2011-08-26 10:00:00",  "price"   : 200,  "apps"    : [{"name" : "System Phone"}, {"name" : "Radio"}],  "manufacturer": {    "name"  : "Nokia",    "country" : "Finland"  }}

单条数据存储

可以通过
Model.save()
很方便对单条数据进行存储。
在这里
save()
是个
instance method
1234567
iPhoneSE.save((err, phone)=>{	if (err) {		console.log(err);	} else {		console.log('Phone[' + phone.device + '] saved.');	}});

多条数据批量存储

也可以通过
Model.insertMany()
一次性批量存储多个。
在这里
save()
是个
static method
12345678910
Phone.insertMany(arrPhone, (err, arrPhone)=>{	if (err) {		console.log('insertMany() failed.');	} else {		console.log('---insertMany()---------------------------------------');		console.log('All phone devices saved.insertMany() saved.');	}	// 批量存储后,打印当前存储个数	Phone.printCount();})
下一篇:mongoose教程—查询About Sodino
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: