2014-07-20 5 views
2

내 코드는 이것이다 :몽구스 : 문서를 쿼리하고, 문서를 찾지 못하면 문서를 만들지 만 문서를 찾으면 업데이트하지 않으려면 어떻게해야합니까?

X.findOneAndUpdate(
{ 
    'x' : x, 
    'date' : { $gte : cutOffDate } 
}, 
{ date : Date.now() }, //does not work since it will override existing dates 
{ upsert : true } 
); 

에는 X의 발견을 만들고 지금 시간 설정이없는 경우 나, 기간 내에서 가장 최근의 X를 찾고 싶어요. 하지만 X를 찾으면 시간을 업데이트하지 마십시오. 어떻게해야합니까? 몽구스 스키마에 기본 시간 설정

작동하지 않습니다 https://github.com/LearnBoost/mongoose/issues/624

답변

2

당신은 삽입이 upsert 요구하는 경우에만 설정하려는 필드를 지정하는 $setOnInsert를 사용할 수 있습니다

X.findOneAndUpdate(
    { 
    'x' : x, 
    'date' : { $gte : cutOffDate } 
    }, 
    { $setOnInsert: { date : Date.now() } }, 
    { upsert : true } 
); 
+0

을 감사! 그것은 많은 도움이되었습니다. – user3409889

관련 문제