node.js - 如何在NodeJS / Mongoose中将数组中的多个项目保存到数据库
问题描述
所以首先我通过一个返回给我多行文本的表单获得一个帖子
然后我使用以下内容将其拆分为多个网址
var str = req.body.url;
var split = str.split('\n');
然后我明白了
[urlone,urltwo,urlthree]
我的保存功能适用于一个文档,我似乎无法通过 mongoose 命令同时将所有三个文档提交给 mongo。
我尝试了几个 forEach 循环。并没有得到任何帮助
我真的可以在这里使用一些帮助我对nodejs真的很陌生
解决方案
定义模型:
let mongoose = require('mongoose');
let Schema = mongoose.Schema;
let ModelSchema = new Schema(
{
property: String,
urls: []
},
{
collection: 'models',
strict: true,
autoIndex: true
}
);
module.exports = Model = mongoose.model('Model', ModelSchema);
现在,您可以创建或更新任何记录。
let urlArray = req.body.url.split('\n');
// 解决方案 1
let myModel = new Model();
myModel.property = 'xxx';
myModel.urls = urlArray;
myModel.save();
// 解决方案 2
Model.update({ property: 'xxxx' }, { $set: { urls: urlArray } }, { upsert: true }, function(err, res) {
// continue to check err/res
})
// 解决方案3,防止重复条目
Model.update({ property: 'xxxx' }, { $addToSet: { urls: urlArray } }, { upsert: true }, function(err, res) {
// continue to check err/res
})
推荐阅读
- robotframework - For Loop 直到机器人框架中的给定范围才循环
- qt - 出现滚动条时如何调整 QScrollArea 的大小(因此只需要一个条)?
- javascript - 正则表达式在 JS 中每秒出现一次后替换 \n\n
- javascript - 是否可以在 html img 标签的 src 中加载和运行脚本?
- json - JSONiq 中的数组和对象查找
- r - 在 R 中按唯一日期而不是观察值来训练和测试拆分
- python - 返回_compile(pattern,flags).findall(string)时出错TypeError:预期的字符串或类似字节的对象
- .net - 如何在没有 .net SDK 的情况下构建 .Net SDK
- css - flex 0 0 的引导解决方案
- c++ - 在模板中使用非模板嵌套类