Как использовать mon goose для внесения изменений в две разные коллекции в одном запросе nodejs - PullRequest
0 голосов
/ 05 марта 2020

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

вот запрос:

// both models(Log & Inventory are imported)

router.get("/add_product/:id/:num/:quantity/:order", (req, res) => {
  var id = req.params.id;
  var quantity = req.params.quantity;
  var order = req.params.order;
  // console.log('id----', id);
  var num_mod = req.params.num;
  var modified_count = parseInt(num_mod) - parseInt(quantity);
  console.log("num_mod----", num_mod);
  Inventory.findByIdAndUpdate(id, { quantity: parseInt(num_mod) }, { new: true }, function(
    err,
    inventory
  ) {
    if (err) {
      console.log("err", err);
      res.status(500).send(err);
    } else {
      console.log(inventory.name);

      const newLog = new Log({
        name: inventory.name,
        description: inventory.description,
        price: parseInt(inventory.price),
        quantity: parseInt(inventory.quantity),
        modified_quantity: parseInt(modified_count),
        itemDest: order //this is not being saved
      });
      newLog.save(function(err, Log) {
        if (err) {
          console.log(err);
        } else {
          console.log("add log success");
          res.send(inventory);
        }
      });
    }
  });
});

URL с внешнего интерфейса:

// order is a string

здесь Схема журнала:

const mongoose = require("mongoose");

const LogSchema = new mongoose.Schema(
  {
    // _id: mongoose.Schema.Types.ObjectId,
    name: { type: String, required: true },
    description: { type: String, required: true },
    price: { type: Number, required: true },
    quantity: { type: Number, required: true },
    modified_quantity: { type: Number, required: true },
    supplier: String,
    taxable: Boolean,
    itemDest: String
  },
  { timestamps: true }
);

// Create model from the schema
const Log = mongoose.model("Log", LogSchema);

// Export model
module.exports = Log;

и вот схема инвентаризации

const mongoose = require("mongoose");

//create Schema
const InventorySchema = new mongoose.Schema(
  {
    // _id: mongoose.Schema.Types.ObjectId,
    name: { type: String, required: true },
    description: { type: String, required: true },
    price: { type: Number, required: true },
    quantity: { type: Number, required: true },
    supplier: String,
    taxable: Boolean
  },
  { timestamps: true }
);

// Create model from the schema
const Inventory = mongoose.model("Inventory", InventorySchema);

// Export model
module.exports = Inventory;

Моя проблема с этой строкой "itemDest: order" в запросе, я намерен сохранить значение "order" извлечено из "req.params.order" в "itemDest", но не сохраняет.

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