小编典典

使用MongoClient v3.0时db.collection不是函数

node.js

我一直在尝试使用MongoDB在nodeJS上进行W3schools教程

当我尝试在nodeJS环境中实现此示例并通过AJAX调用调用该函数时,出现以下错误:

TypeError: db.collection is not a function
    at c:\Users\user\Desktop\Web Project\WebService.JS:79:14
    at args.push (c:\Users\user\node_modules\mongodb\lib\utils.js:431:72)
    at c:\Users\user\node_modules\mongodb\lib\mongo_client.js:254:5
    at connectCallback (c:\Users\user\node_modules\mongodb\lib\mongo_client.js:933:5)
    at c:\Users\user\node_modules\mongodb\lib\mongo_client.js:794:11
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)

请在下面找到我的实现代码:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mytestingdb";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  db.collection("customers").findOne({}, function(err, result) {
    if (err) throw err;
    console.log(result.name);
    db.close();
  });
});

请注意,只要执行命中,就会发生错误:

db.collection("customers").findOne({}, function(err, result) {}

另外,请注意(如果有关系的话),我已经为节点JS安装了最新的MongoDB软件包( npm install mongodb
),并且MongoDB的版本是MongoDB Enterprise 3.4.4,带有MongoDB Node.js驱动程序v3.0.0-rc0。


阅读 270

收藏
2020-07-07

共1个答案

小编典典

我遇到了同样的事情。在package.json中,将mongodb行更改为“ mongodb”:“ ^
2.2.33”。您将需要npm卸载mongodb;然后npm install安装此版本。

这为我解决了这个问题。似乎是错误或文档需要更新。

2020-07-07