【发布时间】:2019-10-21 02:12:38
【问题描述】:
连接顺利,但insert() 向我抛出此错误。
var MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
var url = 'mongodb://____:____@ds125565.mlab.com:25565/heroku_w268n9pj';
MongoClient.connect(url, function(err, client) {
assert.equal(null, err);
db = client.db('temp');
console.log("connected!");
const collection = db.collection('temp');
collection.insert([{
something: please
}
});
我看到了一些关于 mLab 帐户和凭据的其他答案,但我刚刚为此创建了一个新的管理员帐户。令人沮丧,因为它以前使用 v2.3。
【问题讨论】:
-
与 mongo shell 或 pymongo 相同的错误
-
嘿,不知道你是否已经解决了这个问题,但是那个连接字符串看起来像一个沙盒计划。您只能访问沙盒计划中的一个数据库。连接字符串中的数据库名称是
heroku_w268n9pj。所以试试db = client.db('heroku_w268n9pj')。否则,您将尝试在您无权访问的temp数据库上运行命令。 -
这适用于 2.3 而不是 3.0 的原因是在 2.3 中,
db对象是从连接字符串自动创建的。而现在您需要自己指定数据库名称。确保它与连接字符串中的相同。 -
@tfogo 很高兴将其发布为答案:-)
-
@tfogo,请您发布完整的回复,并举例说明您所说的内容吗?