node.js mongo db写关注

时间:2013-12-09 01:04:26

标签: node.js mongodb

我正在运行node.js 10.22,windows 8和mongodb不确定是什么版本,但我今天刚下载它,当我运行我的代码时我收到一条消息,请确保你设置默认的写入问题,我正在尝试跟随YouTube视频,并提到这一点,我在网上找不到它,从我发现的,当我设置db我应该设置j:true,或安全:true / false,但都没有不适合我。我确实得到了我已连接的控制台日志以及主机和端口,但随后我收到了写入关注消息,无法输入或执行任何操作。

var mongo = require('mongodb');
var host = "127.0.0.1";
var port = mongo.Connection.DEFAULT_PORT;

var db = new mongo.Db("nodeintro", new mongo.Server(host,port,{Fsync: true}));
db.open(function(error){
  console.log("we are connected"+host + port);
}) 

尝试了所有类型的方式,仍然没有运气,我做的最好是回到db写关注消息,但这次甚至无法连接。我真正想要的是能够在mongo db中插入任何东西,我可以弄清楚其余部分。

var Db = require('mongodb').Db;
var Connection = require('mongodb').Connection;
var Server = require('mongodb').Server;
var BSON = require('mongodb').BSON;
var ObjectID = require('mongodb').ObjectID;
var host = "127.0.0.1";
var port = mongo.DEFAULT_PORT;


ArticleProvider = function(host, port) {
this.db= new Db('node-mongo-blog', new Server(host, port, {auto_reconnect: true}, {}));
this.db.open(function(error){
if(error){
console.log(error)
}
else{
console.log(port,host)
}

});
};
ArticleProvider(host,port)

2 个答案:

答案 0 :(得分:0)

直接使用mongodb-native时,您现在应该使用MongoClient.connect打开数据库连接池。它将为您设置默认的写入问题。

var mongodb = require('mongodb');
mongodb.MongoClient.connect('mongodb://localhost/nodeintro', function(err, db) {
    // db is your open nodeintro database connection pool here
});

MongoClient是最近添加的内容,因此您正在使用的教程可能会提前发布。

答案 1 :(得分:0)

如果在插入或更新操作中使用{w:1}参数,则可能会出现此错误。要克服此问题,可以在数据库设置中使用{journal:true}参数。

例如;

var Db = require('mongodb').Db,
MongoClient = require('mongodb').MongoClient,
Server = require('mongodb').Server,
ReplSetServers = require('mongodb').ReplSetServers,
ObjectID = require('mongodb').ObjectID,
Binary = require('mongodb').Binary,
GridStore = require('mongodb').GridStore,
Grid = require('mongodb').Grid,
Code = require('mongodb').Code,
BSON = require('mongodb').pure().BSON;

var db = new Db('Your DB Name', new Server('192.168.170.128', 27017), { journal : true });

db.open(function(err, db) {

    var collection = db.collection('user');

    collection.findOne({'_id':req.session.User._id}, function(err, user){

        // some codes what do you want
        collection.save( user, {w: 1}, function(err, user_id) {

           // just close the db connection
           db.close(); 

        });
    });
});