zoukankan      html  css  js  c++  java
  • TypeError: db.collection is not a function

    1、错误描述

    F:
    odejs>node insertData.js
    (node:10028) DeprecationWarning: current URL string parser is deprecated, and wi
    ll be removed in a future version. To use the new parser, pass option { useNewUr
    lParser: true } to MongoClient.connect.
    ���ӳɹ���
    F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodbliboperationsmongo_client_ops.js
    :439
          throw err;
          ^
    
    TypeError: db.collection is not a function
        at writeData (F:
    odejsinsertData.js:5:22)
        at F:
    odejsinsertData.js:19:2
        at result (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodblibutils.js:414:17
    )
        at executeCallback (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodblibutils.
    js:406:9)
        at err (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodbliboperationsmongo_c
    lient_ops.js:285:5)
        at connectCallback (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodbliboperat
    ionsmongo_client_ops.js:240:5)
        at process.nextTick (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodblibopera
    tionsmongo_client_ops.js:436:7)
        at process._tickCallback (internal/process/next_tick.js:61:11)
    
    F:
    odejs>node insertData.js
    (node:4900) DeprecationWarning: current URL string parser is deprecated, and wil
    l be removed in a future version. To use the new parser, pass option { useNewUrl
    Parser: true } to MongoClient.connect.
    ���ӳɹ���
    F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodbliboperationsmongo_client_ops.js
    :439
          throw err;
          ^
    
    TypeError: collection.insert is not a function
        at writeData (F:
    odejsinsertData.js:7:13)
        at F:
    odejsinsertData.js:19:2
        at result (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodblibutils.js:414:17
    )
        at executeCallback (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodblibutils.
    js:406:9)
        at err (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodbliboperationsmongo_c
    lient_ops.js:285:5)
        at connectCallback (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodbliboperat
    ionsmongo_client_ops.js:240:5)
        at process.nextTick (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodblibopera
    tionsmongo_client_ops.js:436:7)
        at process._tickCallback (internal/process/next_tick.js:61:11)
    
    F:
    odejs>node insertData.js
    (node:9572) DeprecationWarning: current URL string parser is deprecated, and wil
    l be removed in a future version. To use the new parser, pass option { useNewUrl
    Parser: true } to MongoClient.connect.
    ���ӳɹ���
    F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodbliboperationsmongo_client_ops.js
    :439
          throw err;
          ^
    
    TypeError: collection.insertOne is not a function
        at writeData (F:
    odejsinsertData.js:7:13)
        at F:
    odejsinsertData.js:19:2
        at result (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodblibutils.js:414:17
    )
        at executeCallback (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodblibutils.
    js:406:9)
        at err (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodbliboperationsmongo_c
    lient_ops.js:285:5)
        at connectCallback (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodbliboperat
    ionsmongo_client_ops.js:240:5)
        at process.nextTick (F:
    odejs
    ode_modules\_mongodb@3.1.1@mongodblibopera
    tionsmongo_client_ops.js:436:7)
        at process._tickCallback (internal/process/next_tick.js:61:11)
    
    F:
    odejs>node insertData.js
    (node:10664) DeprecationWarning: current URL string parser is deprecated, and wi
    ll be removed in a future version. To use the new parser, pass option { useNewUr
    lParser: true } to MongoClient.connect.
    ���ӳɹ���
    ����MongoError: doc parameter must be an object
    ^C
    F:
    odejs>node insertData.js
    (node:10308) DeprecationWarning: current URL string parser is deprecated, and wi
    ll be removed in a future version. To use the new parser, pass option { useNewUr
    lParser: true } to MongoClient.connect.
    ���ӳɹ���
    CommandResult {
      result: { n: 1, ok: 1 },
      connection:
       Connection {
         _events:
          { error: [Function],
            close: [Function],
            timeout: [Function],
            parseError: [Function] },
         _eventsCount: 4,
         _maxListeners: undefined,
         options:
          { host: 'localhost',
            port: 27017,
            size: 5,
            minSize: 0,
            connectionTimeout: 30000,
            socketTimeout: 360000,
            keepAlive: true,
            keepAliveInitialDelay: 300000,
            noDelay: true,
            ssl: false,
            checkServerIdentity: true,
            ca: null,
            crl: null,
            cert: null,
            key: null,
            passPhrase: null,
            rejectUnauthorized: false,
            promoteLongs: true,
            promoteValues: true,
            promoteBuffers: false,
            reconnect: true,
            reconnectInterval: 1000,
            reconnectTries: 30,
            domainsEnabled: false,
            disconnectHandler: [Store],
            cursorFactory: [Function],
            emitError: true,
            monitorCommands: false,
            socketOptions: {},
            promiseLibrary: [Function: Promise],
            clientInfo: [Object],
            read_preference_tags: null,
            readPreference: [ReadPreference],
            dbName: 'student',
            servers: [Array],
            server_options: [Object],
            db_options: [Object],
            rs_options: [Object],
            mongos_options: [Object],
            socketTimeoutMS: 360000,
            connectTimeoutMS: 30000,
            bson: BSON {} },
         id: 0,
         logger: Logger { className: 'Connection' },
         bson: BSON {},
         tag: undefined,
         messageHandler: [Function],
         maxBsonMessageSize: 67108864,
         port: 27017,
         host: 'localhost',
         family: undefined,
         keepAlive: true,
         keepAliveInitialDelay: 300000,
         noDelay: true,
         connectionTimeout: 30000,
         socketTimeout: 360000,
         destroyed: false,
         domainSocket: false,
         singleBufferSerializtion: true,
         serializationFunction: 'toBinUnified',
         ca: null,
         crl: null,
         cert: null,
         key: null,
         passphrase: null,
         ciphers: null,
         ecdhCurve: null,
         ssl: false,
         rejectUnauthorized: false,
         checkServerIdentity: true,
         responseOptions:
          { promoteLongs: true,
            promoteValues: true,
            promoteBuffers: false },
         flushing: false,
         queue: [],
         connection:
          Socket {
            connecting: false,
            _hadError: false,
            _handle: [TCP],
            _parent: null,
            _host: 'localhost',
            _readableState: [ReadableState],
            readable: true,
            _events: [Object],
            _eventsCount: 5,
            _maxListeners: undefined,
            _writableState: [WritableState],
            writable: true,
            allowHalfOpen: false,
            _sockname: null,
            _pendingData: null,
            _pendingEncoding: '',
            server: null,
            _server: null,
            timeout: 360000,
            [Symbol(asyncId)]: 15,
            [Symbol(lastWriteQueueSize)]: 0,
            [Symbol(timeout)]: [Timeout],
            [Symbol(kBytesRead)]: 0,
            [Symbol(kBytesWritten)]: 0 },
         writeStream: null,
         hashedName: '29bafad3b32b11dc7ce934204952515ea5984b3c',
         workItems: [],
         buffer: null,
         sizeOfMessage: 0,
         bytesRead: 0,
         stubBuffer: null },
      message:
       Response {
         parsed: true,
         raw:
          <Buffer 3c 00 00 00 f0 02 00 00 02 00 00 00 01 00 00 00 08 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 01 00 00 00 18 00 00 00 10 6e 00 01 00 00 00 01 6f
     6b ... >,
         data:
          <Buffer 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 18 00
    00 00 10 6e 00 01 00 00 00 01 6f 6b 00 00 00 00 00 00 00 f0 3f 00>,
         bson: BSON {},
         opts:
          { promoteLongs: true,
            promoteValues: true,
            promoteBuffers: false },
         length: 60,
         requestId: 752,
         responseTo: 2,
         opCode: 1,
         fromCompressed: undefined,
         responseFlags: 8,
         cursorId: Long { _bsontype: 'Long', low_: 0, high_: 0 },
         startingFrom: 0,
         numberReturned: 1,
         documents: [ [Object] ],
         cursorNotFound: false,
         queryFailure: false,
         shardConfigStale: false,
         awaitCapable: true,
         promoteLongs: true,
         promoteValues: true,
         promoteBuffers: false,
         index: 44,
         hashedName: '29bafad3b32b11dc7ce934204952515ea5984b3c' },
      ops:
       [ { name: 'zhangsan', age: '30', _id: 5b70f4bea602b02844490a15 } ],
      insertedCount: 1,
      insertedId: 5b70f4bea602b02844490a15 }
    
    F:
    odejs>

    2、错误原因

          在使用Node.js操作MongoDB数据库,想向里面插入数据记录,写了一个JavaScript文件,调用了collection函数,但是这个旧版本的方法,新版本的方法不是这个,换成db()。

    3、解决办法

    var MongoClient = require('mongodb').MongoClient;
    var DB_URL = 'mongodb://localhost:27017/student';
    
    var writeData = function(db,callback){
    	var dbo = db.db('t_sales');
    	var data = {'name':'zhangsan','age':'30'};
    	dbo.collection('t_sales').insertOne(data,function(error,result){
    		if(error){
    			console.log('错误:'+error);
    			return;
    		};
    
    		callback(result);
    	});
    }
    
    MongoClient.connect(DB_URL,function(error,db){
    	console.log('连接成功!');
    	writeData(db,function(result){
    		console.log(result);
    		db.close();
    	});
    });
  • 相关阅读:
    【洛谷P4887】【模板】莫队二次离线(第十四分块(前体))
    查询数据库表大小
    java程序使用ssl证书连接mysql
    win32- 函数运行速度测试
    回调函数是嘛东西
    win32-读取控制台中所有的字符串
    关于 websocket 的一些学习
    idea下载地址
    ida 重新定义
    P1650 田忌赛马(贪心)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13313768.html
Copyright © 2011-2022 走看看