コレクションが存在しない場合は、コレクションを作成してデータを事前に入力するという簡単なチェックです。これは私のローカル ボックスで正常に動作し、db.collection 呼び出しに設定されている "strict" フラグに依存します。これは、coll が存在しない場合にエラーをスローします。Heroku では動作しませんが、その理由を知っている人はいますか?
mongo.Db.connect(mongoUri, function (err, db) {
if (!err)
{
console.log("Connected to Database")
db.collection('collectionName', {strict:true}, function(er, collection) {
if (!er)
{
console.log("Collection opened, ready for use!")
} else {
console.log("DATA DOES NOT EXIST, PREPOPULATING")
populateDB();
}
});
} else {
console.log("Error connecting to database: " + err)
}
});
パッケージ.json
{
"name": "appname",
"description": "Application",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "3.x",
"mongodb": "1.3.x",
"socket.io": "0.9.10"
},
"engines": {
"node": "0.8.4",
"npm": "1.1.49"
}
}