这只是一个简单的检查,如果该集合不存在,则创建它并预先填充数据。这在我的本地方框上工作正常,并取决于在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)
}
});
的package.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"
}
}
答案 0 :(得分:0)
没关系 - 我在package.json文件中将Node更新到版本0.10.x,这似乎解决了它。