MongoDB的。插入了未定义的记录。无法读取undefined的属性'title'

时间:2015-11-28 02:40:21

标签: javascript mongodb database

我是MongoDB中的新手。一旦启动立即得到错误。 我有一个简单的代码

var MongoClient = require('mongodb').MongoClient;

MongoClient.connect('mongodb://localhost:27017/mongotest',
    function(err, db) {
        console.log('Connected to MongoDB!');
        // using the db connection object, save the collection 'testing' to
        // a separate variable:
        var collection = db.collection('testing');
        // isert a new item using the collection's insert function:
        collection.insert({
            'title': 'Snowcrash'
        }, function(err, docs) {
            // on successful insertion, log to the screen the new
            // collection's details:
            console.log(docs.length + ' record inserted.');
            console.log(docs[0].title + ' – ' + docs[0]._id);
            // finally close the connection:
            db.close();
        });
    });

这是error message

enter image description here

请帮助我理解这个错误是什么以及如何解决它。如果你不复杂。

MongoDB 3.0.7版

3 个答案:

答案 0 :(得分:2)

你应该用这个

替换以前的代码
console.log(docs.ops.length + ' record inserted.');
console.log(docs.ops[0].title + ' – ' + docs.ops[0]._id);

答案 1 :(得分:1)

创建连接并插入MongoDB

我使用MongoDB 3.2.0和mongodb node.js驱动程序2.1.14

使用npm

安装Node.js MongoDB驱动程序和BSON
npm install mongodb bson

和INSERT操作看起来像这样

var mongodb = require('mongodb');
var bson = require('bson');

// Create Connection
var server = new mongodb.Server('127.0.0.1', '27017', {});
var client = new mongodb.Db('mydb', server, {w:1});

client.open(function(error){
    if(error)
        throw error;
    // Create MongoDB Collection
    client.collection('mongodb_insert', function(error, collection) {
        if(error)
            throw error;
        console.log('Connection!')
        // CREATE/INSERT Operation
        collection.insert(
            {
                "key": "value",
                "key1": "value1"
            },
            {safe: true},
            function(error, document)
            {
                if(error)
                    throw error;
                console.log(document);
            }
        )
    })
})

答案 2 :(得分:0)

我使用了模块mongodb 2.0.49database mongodb3.0

在插入测试集合之后,docs不是测试集合的文档。

docs是查询的结果。

看起来像

{ result: { ok: 1, n: 1 },
  ops: [ { 'it's you query'} ],
  insertedCount: 1,
  insertedIds: [ 'blah blah blah' ] }

所以,docs不是Array而是json。

这就是为什么docs [0]未定义(“docs不是数组!!!!”)