동일한 MongoDB 업데이트에서 $push 및 $set
MongoDB의 Java 드라이버를 사용하여 동일한 작업에서 레코드를 두 번($set 및 $push) 업데이트하려고 합니다.다음과 유사한 코드를 사용하고 있습니다.
BasicDBObject pushUpdate = new BasicDBObject().append("$push", new BasicDBObject().append("values", dboVital));
BasicDBObject setUpdate = new BasicDBObject().append("$set", new BasicDBObject().append("endTime", time));
BasicDBList combinedUpdate = new BasicDBList();
combinedUpdate.add( pushUpdate);
combinedUpdate.add( setUpdate);
collection.update( new BasicDBObject().append("_id", pageId), combinedUpdate, true, false);
$set과 $push를 BasicDBList를 통해 동일한 업데이트에 결합하면 IgalledArgument가 표시됩니다.예외: "db에 저장된 필드는 '$'(잘못된 키: '$push')로 시작할 수 없습니다."
두 번의 개별 업데이트를 수행하면 업데이트 및 setUpdate를 모두 누르면 유효한 결과가 생성됩니다.
감사합니다!
저는 자바 드라이버를 모르는데, 거기서 목록을 만들어야 하나요?이 코드를 사용하면 어떻게 됩니까?
BasicDBObject update = new BasicDBObject().append("$push", new BasicDBObject().append("values", dboVital));
update = update.append("$set", new BasicDBObject().append("endTime", time));
collection.update( new BasicDBObject().append("_id", pageId), update, true, false);
이것은 다음과 같은 것을 생성해야 합니다.
db.collection.update({_id: pageId}, {$push: {values: dboVital}, $set: {endTime: time}});
코드는 다음과 같이 생성됩니다.
db.collection.update({_id: pageId}, [{$push: {values: dboVital}}, {$set: {endTime: time}}]);
BasicDBObject update = newBasicDBObject().append("$push"), newBasicDBObject().append("vals", dboVital); update = update.basic$set", newBasicDBObject("endTime", 시간);
collection.update(새 BasicDBobject().append("_id", pageId), update, true, false);
내 mongodb 버전은 3.4.20이고 사용 중입니다.
db.collection.update({_id: pageId}, [{$push: {values: dboVital}}, {$set: {endTime: time}}]);
오류가 발생했습니다.
[thread1] Error: field names cannot start with $ [$push] :
이 오류를 해결하기 위해 다음을 사용할 수 있습니다.
db.collection.update({_id: pageId}, {$push: {values: dboVital}, $set: {endTime: time}});
언급URL : https://stackoverflow.com/questions/9071192/push-and-set-in-same-mongodb-update
'programing' 카테고리의 다른 글
matplotlib에서 하위 그림 사이의 간격을 제거하는 방법 (0) | 2023.06.29 |
---|---|
Oracle에서 인덱스를 확인하는 방법 (0) | 2023.06.29 |
Firebase Cloud Messaging - 로그아웃 처리 (0) | 2023.06.29 |
예외 개체에서 추적 정보 추출 (0) | 2023.06.29 |
SQL Server의 다른 저장 프로시저에서 호출된 저장 프로시저의 SELECT 출력을 억제하는 방법은 무엇입니까? (0) | 2023.06.29 |