nodejs操作mongodb报错

用nodejs操作mongodb时,连接数据库正常,但是到了连接collection的部分就报错。

var MongoClient=require('mongodb').MongoClient;
const DB_CONN_STR='mongodb://127.0.0.1:27017/tb_db';

MongoClient.connect(DB_CONN_STR,function(err,db){
  if(err){
    
  }
  var col=db.collection('col')
  col.findOne()
  db.close();
})

错误提示为:TypeError:db.collection is not a function...
写的跟官方文档例子一样为什么报出这个错误,而且菜鸟教程上也是这个写法。有点弄不懂了(ps:用python读写数据成功的)

阅读 2.6k
2 个回答

已解决,node mongodb版本问题,换了一个低版本就没问题了。

我是你这样的写法,用node运行没有报错,不太清楚你是什么原因,下面是我写的查询代码,没有问题,你参考一下:

var MongoClient=require('mongodb').MongoClient;
const DB_CONN_STR='mongodb://127.0.0.1:27017/dataSummary';

MongoClient.connect(DB_CONN_STR,function(err,db){
  if(err){
    console.log(err);
  }else{
    var col=db.collection('users');
    col.findOne({'user':'admin'},function(err,result){
      console.log(result);
    })
    db.close();
  }
})

ps:python操作mongo用的是pymongo,代码如下(python3):

'''
python连接mongodb
'''

# coding=utf-8
from pymongo import MongoClient

# 建立MongoDB数据库连接
client = MongoClient('localhost', 27017)

# 连接所需数据库,test为数据库名
db = client.test1

# 连接所用集合,也就是我们通常所说的表,test为表名
collection = db.users

# 接下里就可以用collection来完成对数据库表的一些操作

# 向集合中插入数据
collection.insert({'name': '111.JPG', 'parent': 'test1', 'isdir': False, 'subdir': []})

# 查找集合中所有数据
for item in collection.find():
    print(item)

# 查找集合中单条数据
print(collection.find_one())
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题