programing

유성 업서트 사용 방법

closeapi 2023. 7. 5. 20:44
반응형

유성 업서트 사용 방법

Meteor upsert 기능이 작동하는 데 약간의 문제가 있습니다.저는 (200줄의 코드) 상당히 새로운 사람이고, 약간의 문제가 있습니다.

컬렉션에는 업데이트뿐만 아니라 추가 행이 계속 삽입됩니다.저는 지난 30분 동안 구글을 검색하는데 제가 이해할 수 있는 예를 찾을 수 없습니다.

내 코드는 다음과 같습니다.

Values.upsert(
    {
      // Selector
      source: "SourceOne",
      currency: "USD"
    },
    {
      // Modifier
      value: res.data['data']['last']['value'],
      time: Date.now(),
    }
  );

저도 해봤어요.

if(Values.find(
      {},{fields: {'source':"SourceOne", 'currency': "USD"}}
    )) {
    Values.update(
      {
        source: "SourceOne", 
        currency: "USD"
      },
      {
        value: res.data['data']['last']['value'],
        time: Date.now()
      }
    );
  } else {
    console.log('blah');
    Values.insert({
      source: "SourceOne", 
      currency: "USD",
      value: res.data['data']['last']['value'],
      time: Date.now()
    });
  }

그리고 아직도 그걸 이해하지 못하는 것 같습니다.

시행착오를 통해 파악했습니다.

Values.upsert({
    // Selector
    source: "SourceOne",
    currency: "USD"
}, {
    // Modifier
    $set: {
        value: res.data['data']['last']['value'],
        time: Date.now() // no comma needed here
    }
});

위의 내용은 ID에 사용할 수 없습니다.이 기능은 업데이트와 동일한 구문으로 사용할 수 있습니다.

Values.upsert(id,
{
  // Modifier
  $set: {
      value: res.data['data']['last']['value'],
      time: Date.now() // no need coma here
  }
}
);

사용해 보십시오.

values.update({"id":id},
       { $set: {
          value: res.data['data']['last']['value'],
          time: Date.now() // no need coma here
      } },
      { upsert: true }
    );

Mongo.Collection #upssert(선택기, 한정자, [옵션], [콜백])

논쟁들

선택기:Mongo Selector, 오브젝트 ID 또는 문자열 - 수정할 문서를 지정합니다.

수식어:Mongo 수정자 - 문서를 수정하는 방법을 지정합니다.

콜백:기능 선택 사항.있는 경우 오류 개체를 첫 번째 인수로 지정하고 오류가 없는 경우 영향을 받는 문서 수를 두 번째 인수로 지정하여 호출합니다.

옵션: 일치하는 모든 문서를 수정하려면 multiBooleanTrue이고, 일치하는 문서 중 하나만 수정하려면 false입니다(기본값).

https://docs.meteor.com/api/collections.html#Mongo-Collection-upsert

언급URL : https://stackoverflow.com/questions/19555473/how-to-use-meteor-upsert

반응형