이전에 몽고 컬렉션에 문서를 삽입했다고 말하십시오.노드의 MongoDB에서 findOneAndUpdate를 사용하는 방법
MongoClient.connect(url, function(err,db){
if(err) {throw err;}
else {
document = {action: "alert",
protocol: "udp",
port: "80",
_id: "12" }
var collection = db.collection("connections");
collection.insertOne(document, function(err,result){
if (err) {throw err;}
else {
console.log("Successful")
db.close();
}
}
}
이제 프로토콜 필드를 업데이트하고 싶습니다. 나는 운이 지금까지
MongoClient.connect(url, function(err,db){
if (err) { throw err; }
else {
var collection = db.collection("connections");
collection.findOneAndUpdate({_id: "12"}, {$set: {protocol: "http"}}, {new: true}, function(err,doc) {
if (err) { throw err; }
else { console.log("Updated"); }
});
}
});
내가 findOneAndUpdate 방법에 잘못된 매개 변수를 전달하고 있는가 없습니다와 함께 무엇을 가지고? 데이터베이스에 올바르게 연결합니다.
실제로 _id를 "12"로 정의 하시겠습니까? 아니면 Mongo의 ObjectId를 수락 하시겠습니까? 후자의 경우 ObjectId 인스턴스 대신 쿼리에서 _id로 문자열을 전달하기 때문에 문서를 찾을 수 없습니다. 또한 오류는 어떻게 생겼습니까? 마지막으로, 왜'{new : true}'인가? –
몽구스 (http://mongoosejs.com/index.html) 또는 이와 유사한 것을 사용합니까? 일반적으로 사람들이 node.js에 사용하는 것입니다. 오류 메시지가 있습니까? – kazu
노드에 mongodb를 사용하고 있습니다. 그리고 그것이 올바르게 업데이트 되기만하면 _id 오류가 아닙니다. 단지 전체 문서를 프로토콜로 바꿉니다. – Spothedog1