Mongodb读写数据错误: db.collection is not a function

Node调用mongodb写如数据异常

最近有看学习使用Express,然后按照网上一些教程编写demo,但是发现在结合mongodb使用时,总会报错;最后搜索一番,原来是mongodb的版本3.x2.x写法不同,所以才会提示报错。

我的版本: "mongodb": "^3.5.7"

如果使用2.x版本,网友说可以将版本降至: "mongodb": "^2.2.33"

问题描述

使用nodejs,连接mongodb,数据写入提示异常:

TypeError: db.collection is not a function
或
TypeError: db.open is not a function
或
TypeError: db.close is not a function
或
TyepError: client.insert is not a function

错误方式

以下是按照博主的demo写的,就提示TypeError: db.open is not a function

  //打开数据库
  mongodb.open(function (err, db) {
    if (err) {
      return callback(err);//错误,返回 err 信息
    }
    //读取 users 集合
    db.collection('users', function (err, collection) {
      if (err) {
        mongodb.close();
        return callback(err);//错误,返回 err 信息
      }
      //查找用户名(name键)值为 name 一个文档
      collection.findOne({
        name: name
      }, function (err, user) {
        mongodb.close();
        if (err) {
          return callback(err);//失败!返回 err 信息
        }
        callback(null, user);//成功!返回查询的用户信息
      });
    });
  });

正确方式

var MongodbClient = require('mongodb').MongoClient
var url = 'mongodb://localhost:27017/blog'

// 连接数据库
MongodbClient.connect(url, function(err, client) {
  if (err) {
    return callback && callback(err)
  }
  
  var db = client.db('blog')
  db.collection('users').findOne({ username: username }, function(err, result) {
    client.close()
    if (err) {
      return callback && callback(err)
    }
    callback(null, result)
  })
})

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容