2013-01-18 4 views
15

Node.js의 MongoDB에 문서를 삽입하려고합니다. DB에서 성공적으로 읽었으며 명령 줄 인터페이스를 통해 문서를 추가했습니다. 그러나 자바 스크립트에서 문서를 삽입 할 수 없습니다. 내가 할 경우 오류가 발생합니다 :이 오류가 발생하는 이유Node.js를 통해 MongoDB에 문서를 삽입 할 때 오류가 발생했습니다.

var mongodb = require("mongodb"); 
var MongoClient = mongodb.MongoClient; 

MongoClient.connect("mongodb://localhost:27017/test", function(err, db) { 
     if (!err) { 
      db.collection("test").insert({ str: "foobar" }); 
     } 
    }); 

나는 내 인생 알아낼 수 없기 :

Error: Cannot use a writeConcern without a provided callback

가 여기 내 코드입니다.

내가 뭘 잘못했는데 어떻게해야합니까?

답변

43

insert 호출에 콜백 함수를 제공하여 메서드가 삽입 도중 발생한 모든 오류를 사용자에게 알릴 수 있도록해야합니다.

db.collection("test").insert({ str: "foobar" }, function (err, inserted) { 
    // check err... 
}); 

또는 당신이 진정으로 삽입 성공 여부에 상관하지 않는 경우, 옵션 매개 변수에 0의 쓰기 문제 값 전달합니다

db.collection("test").insert({ str: "foobar" }, { w: 0 }); 
+2

감사합니다, 작동하는 것 같다. 이것에 대한 문서를 가르쳐 주시겠습니까? 내가 찾은 모든 사례는 노드를위한 것 같지 않았습니다. 있는 그대로의 예제는 찾을 수 없습니다. –

+3

당신이 타격을 가하는 것은'MongoClient'가 도입되기 전에 모든 예제 코드는 일반적으로 안전 쓰기 모드가 기본적으로 꺼져있는 연결을 사용했기 때문에 코드가 작동했을 것입니다. 그러나'MongoClient'는 기본적으로 안전 모드를 가능하게합니다. 'insert' [docs] (http://mongodb.github.com/node-mongodb-native/apigenerated/collection.html#insert)의 예제는 안전 모드를 사용하지 않는다는 것에주의하십시오. – JohnnyHK

관련 문제