문서 구조의 경우:
taskList의 길이가 불확실합니다
배열의 내용을 일괄적으로 수정하는 방법은 무엇입니까?
예를 들어 "_id"에 포함된 taskList 요소의 상태 필드를 일괄 수정합니다: ObjectId("57133995fb5f8930d0e9b81a")를 'ST02'로 일괄 수정합니다.
@몽고 중국인 커뮤니티
MongoDB의 업데이트 문은 한 번에 배열에서 일치하는 첫 번째 요소만 업데이트할 수 있습니다. 몇 가지 아이디어:
1) 다시 모델링하고 작업 목록을 다른 테이블에 넣은 다음 참조를 사용하여 참조합니다. 필요한게 많으시다면
2) 먼저 taskList의 길이를 가져오는 쿼리를 수행한 다음 이 길이에 따라 업데이트 문의 철자를 입력합니다.
var length = db.test.aggregate([{$project:{lenOfArray: {$size:"$taskList"}}}]).next().lenOfArray;var updateObj = {};for(var i=0;i updateObj["taskList."+ i+".stat"] = "ST02";}db.test.update( { }, {$set: updateObj } );
코끼리를 냉장고에 넣는 방법은? 문을 열고, 넣고, 문을 닫으세요 이 데이터를 얻고, 이 배열을 순회하고, 직접 수정하고, 이 데이터를 저장하세요~대체적으로는 이렇습니다
Mongodb는 현재 삽입된 데이터의 일괄 수정을 지원하지 않습니다. 현재는 하나씩만 업데이트하지만 JS 메서드를 작성하여 이를 캡슐화할 수 있습니다.
위와 동일하게 js 메소드를 이용하여 각 문서를 수정하고 저장합니다. 코드 예시는 아래와 같습니다. (mongo shell에서 실행)
MongoDB의 업데이트 문은 한 번에 배열에서 일치하는 첫 번째 요소만 업데이트할 수 있습니다. 몇 가지 아이디어:
1) 다시 모델링하고 작업 목록을 다른 테이블에 넣은 다음 참조를 사용하여 참조합니다. 필요한게 많으시다면
2) 먼저 taskList의 길이를 가져오는 쿼리를 수행한 다음 이 길이에 따라 업데이트 문의 철자를 입력합니다.
var length = db.test.aggregate([{$project:{lenOfArray: {$size:"$taskList"}}}]).next().lenOfArray; updateObj["taskList."+ i+".stat"] = "ST02";
var updateObj = {};
for(var i=0;i
}
db.test.update( { }, {$set: updateObj } );
코끼리를 냉장고에 넣는 방법은? 문을 열고, 넣고, 문을 닫으세요
이 데이터를 얻고, 이 배열을 순회하고, 직접 수정하고, 이 데이터를 저장하세요~
대체적으로는 이렇습니다
Mongodb는 현재 삽입된 데이터의 일괄 수정을 지원하지 않습니다. 현재는 하나씩만 업데이트하지만 JS 메서드를 작성하여 이를 캡슐화할 수 있습니다.
위와 동일하게 js 메소드를 이용하여 각 문서를 수정하고 저장합니다. 코드 예시는 아래와 같습니다. (mongo shell에서 실행)
으아악