Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 作为MongoClient.connect()fn的选项参数提供的自定义pkFactory对象不用于在文档中创建ObjectID_Node.js_Mongodb - Fatal编程技术网

Node.js 作为MongoClient.connect()fn的选项参数提供的自定义pkFactory对象不用于在文档中创建ObjectID

Node.js 作为MongoClient.connect()fn的选项参数提供的自定义pkFactory对象不用于在文档中创建ObjectID,node.js,mongodb,Node.js,Mongodb,自定义pkFactory的定义如下,它作为MongoClient.connect的参数提供,MongoClient.connect不用于创建objectId CustomPKFactory = function() {} CustomPKFactory.prototype = new Object(); CustomPKFactory.createPk = function() { console.log("CUSTOM_PK_FACTORY"); return Date.now().toStr

自定义pkFactory的定义如下,它作为MongoClient.connect的参数提供,MongoClient.connect不用于创建objectId

CustomPKFactory = function() {}
CustomPKFactory.prototype = new Object();
CustomPKFactory.createPk = function() {
console.log("CUSTOM_PK_FACTORY");
return Date.now().toString();
}

MongoClient.connect(mongoUri, {pkFactory: CustomPKFactory}, function(err, mongodb) {
    if(!err) {
    startApp(mongodb);
    console.log("mongoclient.connect");
    } else {
    console.log('unable to connect to mongodb: err = ' + err);
    process.exit(3);
    }
});

将文档插入到集合中时,预期的console.logCUSTOM\u PK\u FACTORY语句不会被执行。nodejsmongodb驱动程序版本mongodb@1.4.22已使用。

您需要在db参数中指定pkFactory,而不是在顶级。例如,您可以将连接线更改为以下内容:

MongoClient.connect(mongoUri, {db: {pkFactory: CustomPKFactory}}, function(err, mongodb) {
...
}
文档不清楚,因为指定文档的方式因使用MongoClient构造函数或MongoClient.connect而有所不同。详情如下: