MongoError:“doc参数必须是文档数组”

我正在尝试编写一个从fullcontact API获取信息作为json并将其插入到mongodb的角度应用程序。我可以成功获取json文件但是当我尝试将它插入到mongodb时,我得到了各种错误。我解决了许多错误,但我卡在这个。任何帮助表示赞赏。

ERROR:

  MongoError {name: "MongoError", message: "docs parameter must be an array of documents", driver: true, stack: "MongoError: docs parameter must be an array of doc…(http://localhost:4200/vendor.bundle.js:71114:10)"}driver: truemessage: "docs parameter must be an array of documents"name: "MongoError"stack: "MongoError: docs parameter must be an array of documents↵    at Function.webpackJsonp.../../../../mongodb-core/lib/error.js.MongoError.create (http://localhost:4200/vendor.bundle.js:33916:11)↵    at Collection.webpackJsonp.../../../../mongodb/lib/collection.js.Collection.insertMany (http://localhost:4200/vendor.bundle.js:44864:32)↵    at http://localhost:4200/main.bundle.js:57:20↵    at Db.webpackJsonp.../../../../mongodb/lib/db.js.Db.collection (http://localhost:4200/vendor.bundle.js:49750:20)↵    at Object.webpackJsonp.../../../../../routes/kisiler.js.exports.kisiEkle (http://localhost:4200/main.bundle.js:54:9)↵    at http://localhost:4200/main.bundle.js:366:18↵    at Request.requested [as _callback] (http://localhost:4200/vendor.bundle.js:21598:5)↵    at Request.self.callback (http://localhost:4200/vendor.bundle.js:70137:22)↵    at Request.webpackJsonp.../../../../events/events.js.EventEmitter.emit (http://localhost:4200/vendor.bundle.js:20324:17)↵    at Request.<anonymous> (http://localhost:4200/vendor.bundle.js:71114:10)"__proto__: Error
    at Object.../../../../mongodb-core/lib/error.js (http://localhost:4200/vendor.bundle.js:33927:24)
    at __webpack_require__ (http://localhost:4200/inline.bundle.js:55:30)
    at Object.../../../../mongodb-core/index.js (http://localhost:4200/vendor.bundle.js:28807:17)
    at __webpack_require__ (http://localhost:4200/inline.bundle.js:55:30)
    at Object.../../../../mongodb/index.js (http://localhost:4200/vendor.bundle.js:41002:12)
    at __webpack_require__ (http://localhost:4200/inline.bundle.js:55:30)
    at Object.../../../../../routes/kisiler.js (http://localhost:4200/main.bundle.js:6:13)
    at __webpack_require__ (http://localhost:4200/inline.bundle.js:55:30)
    at Object.../../../../../src/app/components/user/user.component.ts (http://localhost:4200/main.bundle.js:349:12)
    at __webpack_require__ (http://localhost:4200/inline.bundle.js:55:30)

//    Kisiler.js 
var mongo = require('mongodb');
var Server = mongo.Server,
Db = mongo.Db,
BSON = mongo.BSONPure;

var server = new Server('localhost', 27017, {auto_reconnect: true});
db = new Db('kisidb', server);

db.open(function(err, db) {
if(!err) {
console.log("Connected to 'kisidb' database");
db.collection('kisiler', {strict:true}, function(err, collection) {
if (err) {
console.log("The 'wines' collection doesn't exist. Creating it with sample data...");
populateDB();
}
});
}
});

exports.kisiEkle = function(veri) {
    db.collection('kisiler', function(err, collection) {
     collection.insertMany(veri, {safe:true}, function(err, result) {
if(err){
console.log(err);
}else {
console.log(result);
}
});
     
});
}

const kisi = require('../../../../routes/kisiler');

// user.component.ts

console.log(data);  // type of data is json.
const veri = JSON.stringify(data); 
kisi.kisiEkle(veri);
stack overflow MongoError: "doc parameter must be an array of documents"
原文答案

答案:

作者头像

据我了解,MongoClient 返回一个客户端对象,因此您需要 client.db.collection

看到这个 db.collection is not a function when using MongoClient v3.0