如何将单个doc插入到两个不同的集合java脚本和mongojs中

时间:2018-03-23 23:10:32

标签: javascript mongodb mongojs

我试图使用javascript和mongojs将数据插入两个不同的表但我似乎无法成功 使用npm mongojs文档我得到这个工作单个集合插入,在搜索这个平台我只找到其他语言的解决方案 任何帮助将不胜感激

// var Delivered = require('../model/booking/booking').Delivered,
var  Completed = require('../model/booking/booking').Completed,
express = require('express')
    app = express(),
    mongojs = require('mongojs'),
    db = mongojs('mongodb:coolection',["completeds", "delivereds","deliveredhistory"]);

function route(app){
    app.post('/shipper/completed',function(req, res){

    var item_id = req.body.item_id
        var id = mongojs.ObjectId(item_id);

        db.delivereds.findAndModify({
            "query":{ "_id": id },
            "remove": false
            },

            function(err,data) {

                    if (data) {

                        db.completeds.insert(data,function(err,data){
                            if(err){
                                res.json({
                                    status:400,
                                    message:"Failed to mark as complete",
                                    err:err
                                })
                            }
                            else{
                                res.json({
                                    status:200,
                                    message:"Job successfully completed",
                                    data:data

                                });
                            }
                        });
                    } 
                    else {
                    console.log("fake number")
                    res.json({
                        status: 403,
                        message:'This load is not available for accepting'
             })
          }

     })
})
}
module.exports.route = route;

我想要做的是仍然插入到另一个收藏品中说“传递历史”#39; 请帮忙

我尝试了类似的东西,但没有工作

(db.completeds&&db.deliveredhistory)insert(data,function(err,data){

1 个答案:

答案 0 :(得分:0)

我最终找到了出路

我为传递历史创建了一个新模型,在if(err){....}之后启动了插入方法  完成没有错误然后我实现另一个插入方法res.json({...})之前的条件

像这样

if (data) {

                    db.completeds.insert(data,function(err,data){
                        if(err){
                            res.json({
                                status:400,
                                message:"Failed to mark as complete",
                                err:err
                            })
                        }
                        else{
                           db.deliveredhistory.insert(data) //this is where the insert for the second collection took place
                           res.json({
                                status:200,
                                message:"Job successfully completed",
                                data:data

我希望这对某个地方的其他人有帮助