복붙노트

[MONGODB] 몽고 개체를 사용하여 몽구스 빈 등의 설정 필드

MONGODB

몽고 개체를 사용하여 몽구스 빈 등의 설정 필드

제가 설정 객체, user.signup_date = 널 (null)에 user.save ()를 호출하고 있습니다;

user.first_name = null;
user.signup_date = null;

user.save();

하지만 난 효과적으로 빈 또는 null로이 필드를 설정하는 방법은 여전히 ​​signup_date 및 FIRST_NAME 세트가있는 MongoDB의에서 사용자 ... 볼 때?

해결법

  1. ==============================

    1.기존 문서에서 해당 속성을 제거하려면 문서를 저장하기 전에 NULL 대신 정의되지 않은로 설정 :

    기존 문서에서 해당 속성을 제거하려면 문서를 저장하기 전에 NULL 대신 정의되지 않은로 설정 :

    user.first_name = undefined;
    user.signup_date = undefined;
    
    user.save();
    
  2. ==============================

    2.이 같은 대신 set 메소드를하려고하면이 차이를 만들합니까 :

    이 같은 대신 set 메소드를하려고하면이 차이를 만들합니까 :

    user.set('first_name', null);
    user.set('signup_date', null);
    user.save();
    

    아니면 당신이 할 경우 발생하는 저장 오류가있다 :

    user.save(function (err) {
        if (err) console.log(err);
    });
    

    이 로그에 아무것도 인쇄합니까?

  3. ==============================

    3.또 다른 옵션은 이러한 속성에 대한 정의되지로 디폴트 값을 정의하는 것입니다.

    또 다른 옵션은 이러한 속성에 대한 정의되지로 디폴트 값을 정의하는 것입니다.

    다음과 같은 뭔가 :

    userSchema = 새로운 mongoose.Schema을 ({하자   이름: {     입력 문자열을,     기본값 : 정의되지 않은   },   signup_date : {     입력 : 날짜,     기본값 : 정의되지 않은   } })

  4. ==============================

    4.그냥 삭제 필드

    그냥 삭제 필드

    delete user.first_name;
    delete user.signup_date;
    user.save();
    
  5. ==============================

    5.몽구스 문서 (스키마 유형)에, 당신은 배열의 설명을 갈 수 있습니다. ,이가 말한다 :

    몽구스 문서 (스키마 유형)에, 당신은 배열의 설명을 갈 수 있습니다. ,이가 말한다 :

    var ToyBox = mongoose.model('ToyBox', ToyBoxSchema);
    console.log((new ToyBox()).toys); // []
    

    (나는 장난감 요소 내부에 추가했습니다)

    var ToyBoxSchema = new Schema({
         toys: {
              type: [{
                  name: String,
                  features: [String]
              }],
              default: undefined
         }
    });
    
  6. from https://stackoverflow.com/questions/12636938/set-field-as-empty-for-mongo-object-using-mongoose by cc-by-sa and MIT license