2013-06-03 3 views
0

파일에서 데이터를 읽고 'update'메서드를 사용하여 데이터베이스의 데이터를 업데이트하려고합니다.mongooseJS with TypeError : 정의되지 않은 'constructor'속성을 읽을 수 없습니다.

var Model = require('./dbIndex').Model 

BioMetrics.update({AID: AID}, 
    {$pushAll: { 
    attr1: data[5] === '' ? undefined : {val: data[5], dt: date}, 
    attr2: data[6] === '' ? undefined : {val: data[6], dt: date}, 
    attr3: data[10] === '' ? undefined : {val: data[10], dt: date} 
}}, options, callback); 

나는 다음과 같은 오류 얻을이 실행
TypeError: Cannot read property 'constructor' of undefined

몽고 무엇 undefined 방법을 알고하지 않습니다? undefined가 true 일 때 Mongo는 그 속성을 무시한다는 인상을 받았습니다.

누군가 여기서 일어나는 일을 설명 할 수 있습니까?

답변

2

MongoDB는 undefined으로 설정된 필드를 무시할 수 있지만 Mongoose는 작동 스키마가 없으므로 스키마에 정의 된대로 올바른 유형의 값을 캐스팅하고 시도합니다.

var value = {}; 
if (data[5] !== '') { 
    value.attr1 = {val: data[5], dt: date}; 
} 
if (data[6] !== '') { 
    value.attr2 = {val: data[6], dt: date}; 
} 
if (data[10] !== '') { 
    value.attr3 = {val: data[10], dt: date}; 
} 
BioMetrics.update({AID: AID}, {$pushAll: value}, options, callback); 
: 당신이 프로그래밍 방식 $pushAll 값을 구축 할 수 있습니다 이런 경우를 들어

단지 당신이 원하는 속성을 포함
관련 문제