鍍金池/ 問答/HTML/ nodejs操作mongodb報錯

nodejs操作mongodb報錯

用nodejs操作mongodb時,連接數(shù)據(jù)庫正常,但是到了連接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讀寫數(shù)據(jù)成功的)

回答
編輯回答
疚幼

已解決,node mongodb版本問題,換了一個低版本就沒問題了。

2018年6月6日 01:14
編輯回答
傻叼

我是你這樣的寫法,用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數(shù)據(jù)庫連接
client = MongoClient('localhost', 27017)

# 連接所需數(shù)據(jù)庫,test為數(shù)據(jù)庫名
db = client.test1

# 連接所用集合,也就是我們通常所說的表,test為表名
collection = db.users

# 接下里就可以用collection來完成對數(shù)據(jù)庫表的一些操作

# 向集合中插入數(shù)據(jù)
collection.insert({'name': '111.JPG', 'parent': 'test1', 'isdir': False, 'subdir': []})

# 查找集合中所有數(shù)據(jù)
for item in collection.find():
    print(item)

# 查找集合中單條數(shù)據(jù)
print(collection.find_one())
2017年6月7日 02:13