我正在使用此代码以使用mongodb:
var mongo = require("mongodb");
var BSON = mongo.BSONPure;
var server = new mongo.Server('localhost', 27017, {auto_reconnect: true, safe: true});
var db = new mongo.Db('dbname', server);
db.open(function(err, db) {
if(!err) {
console.log("Connected to 'dbname' database");
db.collection("items", {safe:true}, function(err, collection) {
console.log("Open database");
if (err) {
console.log("The 'items' collection doesn't exist. Creating it with sample data.");
var items = [];
for (var i = 0; i < 10; i++) {
items.push({
title: "title" + i,
site_name: "site_name" + i,
url: "url" + i,
type: "type" + i,
image: "image" + i
});
}
db.collection("items", function(err, collection) {
collection.insert(items, {safe:true}, function(err, result) {});
});
}
});
}
});
当我运行应用程序时,我收到消息:
========================================================================================
= Please ensure that you set the default write concern for the database by setting =
= one of the options =
= =
= w: (value of > -1 or the string 'majority'), where < 1 means =
= no write acknowlegement =
= journal: true/false, wait for flush to journal before acknowlegement =
= fsync: true/false, wait for flush to file system before acknowlegement =
= =
= For backward compatibility safe is still supported and =
= allows values of [true | false | {j:true} | {w:n, wtimeout:n} | {fsync:true}] =
= the default value is false which means the driver receives does not =
= return the information of the success/error of the insert/update/remove =
= =
= ex: new Db(new Server('localhost', 27017), {safe:false}) =
= =
= http://www.mongodb.org/display/DOCS/getLastError+Command =
= =
= The default of no acknowlegement will change in the very near future =
= =
= This message will disappear when the default safe is set on the driver Db =
========================================================================================
这是什么消息,我该如何解决? 有没有更好的方法来使用mongodb?
答案 0 :(得分:8)
MongoDB帮助您在其数据库设置中设置默认写入关注(w)参数。
更改此行应该可以解决问题
var db = new mongo.Db('dbname', server, {w:1});
这适用于开发/黑客攻击,但在开始制作之前,您应该了解此选项的后果。
答案 1 :(得分:3)
Db构造函数有三个参数。 “DataBaseName”,ServerObject,{parameters}。
显示的消息是关于写入问题的警告,并解释了您获得的选项。
var _mongodb = 'MyDataBase';
var db = new mongodb.Db(_mongodb, server, {w:'majority'});
参考:http://mongodb.github.io/node-mongodb-native/api-generated/db.html
答案 2 :(得分:1)
var MongoClient = require('mongodb').MongoClient, Server = require('mongodb').Server;
var mongoClient = new MongoClient(new Server('localhost', 27017));
db = mongoClient.db("mydb");
db.open(function(err, db) {
if(!err) {
console.log("Connected to 'mydb' database");
db.collection('mycollection', {strict:true}, function(err, collection) {
if (err) {
console.log("error...");
}
});
}
});
参考:http://mongodb.github.io/node-mongodb-native/api-generated/mongoclient.html
答案 3 :(得分:-1)