Node.js:在迭代的JSON POST数据上创建多个MongoDB文档

伊戈尔·P。

一个网页通过POST将JSON数据发送到我的Node.js应用程序(使用Mongoose的MEAN环境)。JSON文件如下所示(摘录):

   Firstname: 'XY',
   Surname: 'asd', 
   Articles: 
       [ { title: '1', description: 'XY' },
         { title: '2', description: 'XY' },
         { title: '3', description: 'XY' } 

目的是在mongodb数据库中创建作者,将作者添加到其他目录,存储相关文章,并在作者文档中创建对这些文章的引用(不包括代码)。这是处理请求的代码:

[...]
    async.waterfall([
            //Create random code for author (besides mongodb-specific id)
            function(callback){
                newAuthorCode.randomAuthorCode(function(err, code) {
                    callback(null, code);    
                });
            },

            //Save new author to db
            function(code, callback){
                var newAuthor = new Author({firstname: req.body.Firstname,
                                        surname: req.body.Surname,
                                        identcode: code
                });

                newAuthor.save(function (err){
                    callback(null, newAuthor);
                });
            },

            //Add new author to an additional directory
            function(newAuthor, callback){
                Directory.update({_id: req.user._id}, {$push: {authorids: newAuthor._id }}, function(err, update){
                    if (update){
                        callback(null);
                    }
                });
            },

            //saves articles to db
            function(callback){
                var keys = Object.keys(req.body.articles);

                for(var i=0, length=keys.length; i<length; i++){
                    var newArticle = new Article({title: req.body.Articles[keys[i]].title,
                                               description: req.body.Articles[keys[i]].description

                    });

                    newArticle.save(function (err){
                        console.log(newArticle._id); // <--- !!!!!!!
                    });
                }
                callback(null);
            }

        ], function (err, result) {
            console.log('DONE!!!');
            res.send('200');
        }); 

我的问题:

1)我尝试输出生成的文章的所有ID的标记代码行仅传递i乘以存储的最后一篇文章的ID(在此情况下为第3条)。

2)问题1导致我无法在作者文档(存储在另一个收藏集中)中创建新创建文章的引用,因为我只能访问最后一个ID,因此无法访问!

3)有时作者和文章在数据库中创建了多次(两者之间有巨大的时间间隔)!

感谢您提出的任何建议,因为我没有足够的想法了。

伊戈尔

JME

不确定newLink代码中包含什么,但是您可以尝试以下方法:

newArticle.save(function (err, newDoc){
    console.log(newDoc._id); // <--- !!!!!!!
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

创建 REST API 以处理来自 Node.js 和 MongoDB 上不同传感器的 JSON 数据

来自分类Dev

Node.js-迭代嵌套JSON数组的正确方法

来自分类Dev

从Node.js中的文件迭代JSON对象

来自分类Dev

迭代分层JSON / JS数据的最佳方法

来自分类Dev

从MongoDB在Node.Js中创建JSON树

来自分类Dev

使用mongodb创建数据库node.js

来自分类Dev

node js mongodb 获取数据

来自分类Dev

Node.js从MongoDB渲染JSON映射

来自分类Dev

如何创建JSON对象Node.js

来自分类Dev

将JSON数据从Node.js存储到MongoDB

来自分类Dev

查询子文档MongoDB Node.JS

来自分类Dev

使用Node.js从JSON提取数据

来自分类Dev

Node.js-Async.js映射功能仅显示上一次迭代的结果吗?

来自分类Dev

如何在node.js上查看json数据?

来自分类Dev

Node.js文档

来自分类Dev

mongodb node.js查找数组中存在多个ID的文档

来自分类Dev

Node.js,MongoDB-插入/更新多个文档并发送单个响应

来自分类Dev

Mongodb node.js 查询嵌入式文档具有多个值的单个字段。

来自分类Dev

从gremlin数据库获取数据并在Node.js中进行迭代

来自分类Dev

如何在node.js上使用mongoose从mongodb基础检索文档?

来自分类Dev

如何在 Java/Android 中迭代 Node.js 数据库查询结果

来自分类Dev

JS:在Node.js上创建报告

来自分类Dev

MongoDb使用Node.js从文档中删除子文档

来自分类Dev

使用Node.js数据而不是Body传递使用Node.js数据创建POST http.request的问题

来自分类Dev

Node.JS Mongodb 查询/创建

来自分类Dev

MongoDB-在node.js中使用多个$ elemMatch运算符更新多个子文档级别

来自分类Dev

通过_id node.js查找mongodb文档mongodb本机

来自分类Dev

Node.js迭代器接口

来自分类Dev

Node.js异步数组迭代

Related 相关文章

热门标签

归档