これを数時間追跡しました。問題はモンゴースの私の使用にまで下がった。私はMongooseスキーマをいくつかのコレクションに使用していましたが、Mongooseは他のコレクションには使用していませんでした。ここに私の問題のあるコードを含むファイルがあります:
connectedDb = db;
デシベルはmongoose.connection
た:
// Some common MongoDb operations and data.
'use strict';
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
var logger = require('./Logger');
var mongoose = require('mongoose');
// TODO: Take this out for production.
mongoose.set('debug, true');
var PSSharingInvitations = require('./PSSharingInvitations')
var connectedDb = null;
// Call this just once, at the start of the server.
// TODO: Need better error handling when can't initially connect. Right now have an ugly looking error when Mongo is not already started and we try to start our server.
exports.connect = function(mongoDbURL) {
MongoClient.connect(mongoDbURL, function(err, db) {
assert.equal(null, err);
if (!db) {
logger.error("**** ERROR ****: Cannot connect to MongoDb database!");
}
else {
mongoose.connect(mongoDbURL);
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
// SCHEMA's
exports.SharingInvitation = PSSharingInvitations.buildSchema(mongoose);
logger.info("Mongoose: Connected to MongoDb database");
});
connectedDb = db;
logger.info("Mongo: Connected to MongoDb database");
}
});
};
exports.db = function() {
return connectedDb;
};
// Call this just once, when the server shuts down.
exports.disconnect = function() {
};
問題はラインであることが判明しました。つまり、私はmongoose.connection
をMongooseを使用していないMongoDB Collectionsのデータベースとして使用していました。これにより断続的なエラーが発生しました。
exports.connect = function(mongoDbURL) {
MongoClient.connect(mongoDbURL, function(err, db) {
assert.equal(null, err);
if (!db) {
logger.error("**** ERROR ****: Cannot connect to MongoDb database!");
}
else {
connectedDb = db;
logger.info("Mongo: Connected to MongoDb database");
mongoose.connect(mongoDbURL);
var connectedMongooseDb = mongoose.connection;
connectedMongooseDb.on('error', console.error.bind(console, 'connection error:'));
connectedMongooseDb.once('open', function() {
// SCHEMA's
exports.SharingInvitation = PSSharingInvitations.buildSchema(mongoose);
logger.info("Mongoose: Connected to MongoDb database");
});
}
});
};
[docs](https://docs.mongodb.com/manual/reference/method/ObjectId/)のどこでも 'ObjectID.createFromHexString'メソッドが見つかりません。単純に 'ObjectId()'を試しましたか? 'var id = ObjectId(" 507f1f77bcf86cd799439011 ")'? –
fracz
https://mongodb.github.io/node-mongodb-native/api-bson-generated/objectid.htmlの 'createFromHexString'を検索してください。私は以下の問題であることが判明しました。ありがとう。 –