[MONGODB] 업데이트 및 반환 문서에서 MongoDB를
MONGODB업데이트 및 반환 문서에서 MongoDB를
나는 업데이트 된 문서를 얻을합니다. 이건 내 원래의 코드이며 성공적으로 업데이트하지만 문서를 반환하지 않습니다.
collection.update({ "code": req.body.code },{$set: req.body.updatedFields}, function(err, results) {
res.send({error: err, affected: results});
db.close();
});
"제공되는 콜백없이 writeConcern를 사용할 수 없습니다"나는 toArray 기능을 사용하지만,이 오류를했다 :
collection.update({ "code": req.body.code },{$set: req.body.updatedFields}).toArray( function(err, results) {
res.send({error: err, affected: results});
db.close();
});
어떤 아이디어?
해결법
-
==============================
1.collection.update는 ()는 자신의 콜백에 영향을받은 문서의 수를보고합니다.
collection.update는 ()는 자신의 콜백에 영향을받은 문서의 수를보고합니다.
수정하는 동안 문서를 검색하려면, 대신) collection.findOneAndUpdate을 (사용할 수 있습니다 (이전 .findAndModify ()).
collection.findOneAndUpdate( { "code": req.body.code }, { $set: req.body.updatedFields }, { returnOriginal: false }, function (err, documents) { res.send({ error: err, affected: documents }); db.close(); } );
업데이트 : 다음 MongoDB를 사용하기를 .findOneAndUpdate을 실행 {returnNewDocument : TRUE} 또는 {새로운 : TRUE} 사용할 수 있습니다 몽구스를 사용하는 경우. 위는 Node.js를 드라이버입니다.
-
==============================
2.이 솔루션은 설정하는 것입니다 : {returnOriginal : 거짓}.
이 솔루션은 설정하는 것입니다 : {returnOriginal : 거짓}.
collection.findOneAndUpdate( whereObj, updateObj, {returnOriginal: false});
-
==============================
3.많은 업데이트하고 내가 해결했다, 그래서 문서에 수정 된 레코드를 반환 할 수있는 방법을 찾을 수 없습니다.
많은 업데이트하고 내가 해결했다, 그래서 문서에 수정 된 레코드를 반환 할 수있는 방법을 찾을 수 없습니다.
나는이 방법, 당신은 문서가 수정되거나 이미 사용하고 있는지 값을 한 경우 말할 수 없을 것입니다 아래로 찾을 수있는 하나 이상의 오류 :
function findAndUpdateMany(filter, updateOptions) { return collection.find(filter).project({_id: 1}).toArray() .then(function(matchingIds) { filter = {_id: {$in: matchingIds}} return collection.updateMany(filter, updateOptions) }).then(function() { return collection.find(filter).toArray() }) }
-
==============================
4.WriteResult 객체를 체크 아웃 :
WriteResult 객체를 체크 아웃 :
http://docs.mongodb.org/manual/reference/method/db.collection.update/#writeresults-update
WriteResult result = collection.update({ "code": req.body.code },{$set: req.body.updatedFields}, function(err, results) { res.send({error: err, affected: results}); db.close(); });
뭔가를해야 결과 :
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
업데이트 된 결과를 원하는 경우, 기본 키와 다른 쿼리를 수행합니다.
from https://stackoverflow.com/questions/24747189/update-and-return-document-in-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 유성 외부 MongoDB의 인스턴스에 연결하는? (0) | 2019.12.10 |
---|---|
[MONGODB] MongoDB를 $ 또는 쿼리 (0) | 2019.12.10 |
[MONGODB] 동적 라이브러리 php_mongo.dll를로드 할 수 PHP 시작 할 수 없습니다 (0) | 2019.12.10 |
[MONGODB] MongoDB의 서버는 여전히 인증없이 액세스 할 수 있습니다 (0) | 2019.12.09 |
[MONGODB] MongoDB를 $된다 / $ 문자열로 저장 관련 연산자 LT (0) | 2019.12.09 |