繁体   English   中英

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

[英]Custom pkFactory object provided as the options argument to MongoClient.connect() fn is not used to create ObjectID in the documents

自定义pkFactory定义如下,它作为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.log( “CUSTOM_PK_FACTORY” )语句。 使用nodejs mongodb驱动程序版本mongodb@1.4.22。

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

MongoClient.connect(mongoUri, {db: {pkFactory: CustomPKFactory}}, function(err, mongodb) {
...
}

文档不清楚,因为您指定它的方式因使用MongoClient构造函数还是MongoClient.connect而异。 更多信息: https//mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html

暂无
暂无

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

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