繁体   English   中英

通过Node.js本机驱动程序插入MongoDb不会插入

[英]MongoDb insert via Node.js Native Driver not inserting

我正在尝试获取一些数据保存到MongoDb中。 我事先遵循以下示例并验证了该示例是否有效,但是现在我正尝试使用这种“格式”编写自己的测试应用程序,但该示例无法正常工作。 MongoDb不会引发任何错误,我什至可以从插入回调中检索doc _id。 但是,当我进入Mongo shell时,甚至不存在该集合,更不用说文档了。

这是我最初遵循的示例,以便您可以体会我尝试模仿自己的测试应用程序的方式:

http://blog.ijasoneverett.com/2013/03/a-sample-app-with-node-js-express-and-mongodb-part-1/

以下是我尝试失败的尝试。 谢谢你的帮助!

这是我的数据库代码:

var Db = require('mongodb').Db,
    Connection = require('mongodb').Connection,
    Server = require('mongodb').Server,
    BSON = require('mongodb').BSON,
    ObjectID = require('mongodb').ObjectID;


Repository = function(host, port){
    this.db = new Db('test-mongo-db', new Server(host, port, {safe: true}, {auto_reconnect:true}, {}));
    this.db.open(function(){

        console.log('db open');

    });
};

Repository.prototype.getCollection = function(callback){
    this.db.collection('owners', function(error, owners_collection){
        if (error) callback(error);
        else
            callback(null, owners_collection);
    });
};

Repository.prototype.createOwner = function(owner, callback){
    this.getCollection(function(error, owners_collection){

        if (error) callback(error);
        else {

            owners_collection.insert(owner, function(error, doc){

                if (error) callback(error);
                else {
                    console.log('insert was successful: ' + doc[0]['_id']);
                    callback(null, owner);
                }
            });

        }

    });
};

exports.Repository = Repository;

这是调用它的代码:

var Repository = require('../repositories/Repository').Repository;

exports.createOwner = function(req, res){


    var owner = {

        email : req.body.email,
        password : req.body.password,
        firstName : req.body.firstName,
        lastName : req.body.lastName,

        schools : []

    };

    var repository = new Repository('localhost', 27017);

    repository.createOwner(owner, function(error, docs){

        if (error) console.log('saving owner failed : ' + error);
        else {
            console.log('saving owner successful');
            res.redirect('/');
        }

    });
};

如果@cristkv是正确的,则可以尝试在插入操作中添加可选参数写关注点:

owners_collection.insert(owner, {w:1}, function(error, doc){

资料来源:

http://mongodb.github.io/node-mongodb-native/2.0/api/Collection.html#insert

http://docs.mongodb.org/manual/core/write-concern/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM