如何使用空数组作为属性更新文档?

时间:2014-05-12 11:16:30

标签: node.js mongodb mongoose

每当我有一个带有数组的模式时,其元素都有可能的模式,每当我尝试使用空数组作为值更新文档时,我都会收到错误。 如何在不收到此错误的情况下为这些数组元素提供架构?

示例架构:

tags: {  type: [String], "default": [] }
//or
tags:[ {type:String} ]

示例请求:

MyModel.findOneAndUpdate({something:true},{tags:[]},callback);

示例错误:

[TypeError: Cannot read property 'schema' of undefined]

我的环境:

  • node 0.10.6
  • mongodb 2.4.4
  • mongoose 3.8.9

1 个答案:

答案 0 :(得分:0)

不能说相同的基本原则产生相同的结果:

var mongoose = require("mongoose");

var Schema = mongoose.Schema;

mongoose.connect('mongodb://localhost/test');

var exampleModel = new Schema({
  something: Boolean,
  tags: { type: [String], default: [] }
});

var MyModel = mongoose.model( 'Model', exampleModel );

MyModel.findOneAndUpdate(
  { something: true },
  { tags: [] },
  { upsert: true },
  function( err, doc ) {
    console.log( doc )
  }
);

这给了我一个结果:

{ _id: 5370b44e718592ba9206979c, something: true, tags: [] }