【问题标题】:MONGO_OBJECT_REMOVED ERROR when trying to Insert Data into Mongo Collection尝试将数据插入 Mongo 集合时出现 MONGO_OBJECT_REMOVED 错误
【发布时间】:2023-03-16 03:54:01
【问题描述】:

当我尝试将数据插入 MongoDB 时,rcitems 的 console.log 给了我一个 "MONGO_OBJECT_REMOVED" 错误。

目前使用 Meteor、Blaze、Simpl-Schema 和 Collection2

rcitems 假设显示一个包含产品、数量、批次和过期日期对象的数组。

当我将 INSERT 删除到 Mongo 代码时,rcitems 会正确显示数据。

请查看图片以供参考。

ERROR Image

删除 Receive.insert(...)

后的工作图像

Working Image

Template.receiveForm.events({
  'submit form': function(event, template){
    event.preventDefault();
    var rcitems = [];
    let docdate = event.target.docdate.value;
    docdate = moment(docdate, "DD-MM-YYYY").toISOString();
    let supplier = event.target.supplier_sel.value;
    var trs = $('tbody tr');

    //Build receiveLot Array
    trs.each(function(tr){
      let prodid = $(this).closest('tr').attr('id');
      let prodname = $(this).find(".prodname").html();
      let quantity = Number($(this).find("#quantity").val());
      let lot = $(this).find("#lotno").val() || 0;
      let expdate = $(this).find("#expdate").val() || 0;
      console.log(prodid);
      console.log(prodname);
      console.log(quantity)
      console.log(lot)
    });
    console.log(rcitems);
    var recvdoc = {'docdate' : docdate, 'supplier': supplier, 'receiveItems': rcitems};
    console.log(recvdoc);
    //Insert to Receive Collection
    Receive.insert(recvdoc, function( error, result ){
      if (error) {
        console.log(error);
      } else {
        console.log("Insert Success");
        console.log(result);
      }
    });
  }
});

架构

import SimpleSchema  from 'simpl-schema';

Receive = new Mongo.Collection("receive");
Receive.attachSchema(new SimpleSchema({
  docdate: {
    type: Date,
    label: "Document Date",
  },
  supplier: {
    type: String,
    label: "Supplier",
  },
  receiveItems:{
    type: Array,
    blackbox: true,
    label: "Receive Lot",
  },
}));

【问题讨论】:

  • 我认为您的订阅有问题,因为这不应该发生
  • 我还在使用自动发布包。

标签: javascript mongodb meteor meteor-collection2


【解决方案1】:

我已经找到解决办法了。

blackbox 不适用于 type: Array 所以我从

  receiveItems:{
    type: Array,
    blackbox: true,
    label: "Receive Lot",
  },

  receiveItems:{
    type: Array,
    label: "Receive Lot",
  },
  'receiveItems.$':{
    type: Object,
    blackbox: true,
  },

【讨论】:

    猜你喜欢
    • 2016-08-18
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2020-06-04
    • 2018-08-15
    相关资源
    最近更新 更多