Как вставить объект без имени в mongodb с помощью nodejs - PullRequest
0 голосов
/ 24 августа 2018

Это мой дизайн схемы

 mongoose.Schema({

              traffic_countries:String,
              company_details:String,
              campaigns:[{
                    _campaignid : mongoose.Schema.Types.ObjectId,   
              }],
              impressions:[{
                    country:String,
                    _campaignid :mongoose.Schema.Types.ObjectId
              }],
              payments:[],
              budget:String                                                })

Что я хочу сделать

Я хочу вставить объект ниже в массиве платежей, код, который я использую для этой цели, указан ниже объекта

                {
                            "id" : "PAY-52L98986JB4797714LN73QTY",
                            "intent" : "sale",
                            "state" : "created",
                            "payer" : {
                                    "payment_method" : "paypal"
                            },
                            "transactions" : [
                                    {
                                            "amount" : {
                                                    "total" : "12.00",
                                                    "currency" : "USD"
                                            },
                                            "description" : "",

                                            },
                                            "related_resources" : [ ]
                                    }
                            ],
                            "create_time" : "2018-08-24T07:48:30Z",
                            "links" : [

                                    {

                                            "rel" : "execute",
                                            "method" : "POST"
                                    }
                            ],
                            "httpStatusCode" : 201
                    }

Код, который я использую для этой цели

Вышеуказанный объект хранится в переменной транзакции, которую я получаю из PayPal API и вставляю в массив платежей

var newPayment = {
            $push:{
                payments:{
                    transaction
                }
            }
        }



        Advertiser.updateOne({_id:req.user.id},newPayment,function(err,rec){
            if(err) throw err;

        })

Объекты, которые хранятся в mongodb, похожи на

payments:[                                                                  
          { transaction:{object} },                                         
          { transaction:{object} },                                         
          { transaction:{object} }                                          
]

Но я хочу хранить объекты вроде

payments:[                                                                  
          {object},                                         
          {object},                                         
          {object}                                          
]

1 Ответ

0 голосов
/ 24 августа 2018

После большого количества времени я сам нашел ответ на эту проблему, мне нужно только убрать лишние скобки в push-запросе

Вместо этого

var newPayment = {
        $push:{
            payments:{
                transaction
            }
        }
    }

Мне нужно было

var newPayment = {
        $push:{
            payments:transaction

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...