MongoDB 대량 작업을 사용하여 문서를 삽입하고 있습니다.MongoDB 대량 연산자, 삽입하지 않을 경우 삽입
문서를 찾을 수없는 경우에만 삽입하고 싶습니다. 발견 된 경우 (예 : upsert) 업데이트하고 싶지 않습니다.
아이디어가 있습니까?
그러나,이 경우에도 :
var obj = {
item: 'test'
}
bulk.find({ item: {$ne : obj.item}}).upsert().updateOne(obj);
bulk.execute();
이 발견되지 않는 경우는 실제로 아무것도 삽입하지 않는 것 같습니다.
편집 :
나는이 좀 더 명확하게 업데이트하고 싶었다.
대량 API를 사용하여 수행하려고하는 두 가지 작업이 있습니다. 하나는 업데이트하고 하나는 삽입하는 작업입니다.
문서는 다음과 같습니다
{
item: 'test',
categories: [{
name: 'one',
attr: 'two'
}]
}
내가 뭘하려는 것은 항목 값이 발견되지 않는 경우, 다음 OBJ를 삽입합니다. 그러나 발견 된 경우 categories.name
을 찾지 못하면 $push
categories
배열의 범주 개체가됩니다. 문서가 있지만 카테고리가 있으면 아무 것도하지 않습니다.
응답 해 주셔서 감사합니다. 좀 더 명확히하기 위해 질문을 업데이트했습니다. 나는 네가하는 말을하려했지만, 나는 거기에 정확히 도착하지 못하고있다. 도움을 주셔서 감사합니다. – dzm
지구상에'.upsert()'가있는 이유는 무엇입니까? 때로는 어떻게 개발자가 상식을 뛰어 넘을 수 있었는지 궁금합니다. 직관적으로, 그것은 .updateOne ({$ setOnInsert : obj}, {upsert : true})'가 아니 었습니까?개발자의 삶을 끔찍하게 만드는 일탈적인 일이 항상 있다는 점을 제외하면 모든 것이 줄 지어 있습니다. – Rexford