Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongoose:保存模型实例会在MongoDB中创建两个条目_Mongodb_Mongoose - Fatal编程技术网

Mongoose:保存模型实例会在MongoDB中创建两个条目

Mongoose:保存模型实例会在MongoDB中创建两个条目,mongodb,mongoose,Mongodb,Mongoose,我的代码: var mySchema = new Schema({ aktuell: {N7:String, Auftragsnr:String}, historie : [new Schema({ date: { type: Date, default: Date.now }, changed: {N7:String, Auftragsnr:String}, deleted: { type:

我的代码:

var mySchema = new Schema({
  aktuell: {N7:String, Auftragsnr:String},
  historie : [new Schema({
                date: { type: Date, default: Date.now },
                changed: {N7:String, Auftragsnr:String},
                deleted: { type: Boolean, default: false }
             }, {_id:false})]
}, { strict: false });

createIP = function(req, res) {
    var ip = new IP ({
                      aktuell:     req.body.aktuell,
                      historie:    [
                          {
                            date: nowObj, 
                            changed: req.body.aktuell
                          }
                      ]
    });

    ip.save(function(err) {
        if(err) {
            res.send({status:err});
            return;
      } else {
            res.send({ status: 'OK', ip:ip });
      }
    });
}
我希望它在我的数据库中创建这样的条目:

{ _id: 54181fc0c5b9c1c7294ef510,
    historie: 
    [ { deleted: false,
        changed: [Object],
        date: Tue Sep 16 2014 13:32:16 GMT+0200 (CEST) 
    } ],
    aktuell: { Auftragsnr: '12', N7: '123132' } }
但除了上面的对象文字外,还可以使用自己的
ObjectId
创建一个额外的
historie
对象。这就是我在模型中使用
{u id:false}
的原因。我还按照Mongoose文档的建议将数组声明为新模式。我不在knowlodge了,我试了很多。如何摆脱这个错误

log(ip)显示mongoose确实向mongoDD传递了两个对象文本,一个是空的
aktuell
对象,另一个是填充的。此外,更改后的对象的行为也很奇怪。这是怎么回事

Im listening on port 9000
Connected to Database
POST - /ip/create
{ __v: 0,
  _id: 54182c3bd9d529df6085f853,
  historie: 
   [ { deleted: false,
       changed: {},
       date: Tue Sep 16 2014 14:25:31 GMT+0200 (CEST) } ],
  aktuell: {} }
IP created
POST /ip/create/ 200 25.763 ms - 128
POST - /ip/create
{ __v: 0,
  _id: 54182c3bd9d529df6085f854,
  historie: 
   [ { deleted: false,
       changed: [Object],
       date: Tue Sep 16 2014 14:25:31 GMT+0200 (CEST) } ],
  aktuell: { Auftragsnr: '14', N7: 'qweqw' } }
IP created
POST /ip/create/ 200 23.870 ms - 214

如果您不希望嵌套文档上有
id
,也不希望在ip对象之外访问它们,则不需要为其创建另一个架构。一个新的模式通常意味着一个新的集合和对它的引用。相反,只需将其嵌套:

var IpSchema = new Schema({
    aktuell: {
        N7: { type: String },
        Auftragsnr: { type: String },
    },
    historie: [
        {
            _id: false,
            date: { type: Date, default: Date.now },
            changed: {
                N7: { type: String },
                Auftragsnr: { type: String },
            },
            deleted: { type: Boolean, default: false },
        }
    ],
});

我想这也能解决您的问题,让我知道。

您的数据结构很好。不过,仅供参考,另一个也很好!问题的根本原因是:原来是因为在发出实际的“POST”请求之前,angular发出了飞行前头部请求“OPTIONS”。我的任务继续在寻找角兽和猫鼬的未记录特征和陷阱。好的,我明白了。希望另一个问题到时候能解决。