mongodb插入子文档为:[Object]

时间:2013-09-14 10:32:52

标签: node.js mongodb

我使用mongodb中的mongodb驱动程序将数据插入nodejs

var mongodb = require('mongodb');

var insert = function(uri, collectionName, data, next) {
    mongodb.MongoClient.connect(uri, function(err, driverDb) {  
      if(err) {
        next(err);
      } else {
        driverDb.collection(collectionName).insert(data,function(err,result) {
            if(err) {
                next(err);
            } else {
                driverDb.close(function (err) {
                    if(err) {
                        next(err);
                    } else {
                        next(null,result);
                    }
                });
            }
        });
      }
    });
};


insert('mongodb://localhost/mean-test','testcol',{ 
             a : 'Apple',
             b : [ { ba: 'Boy' }, {bb : 'Bird'} ]
        }, function(err,models) {
            console.log(models);
        });

以上结果如下:

[{a:'Apple', b : [[Object]] }]  

我如何实现这一目标:

[{_id:ObjectId("someid"), a:'Apple', b : [{_id:ObjectId("someid"), ba: 'Boy' }, {_id:ObjectId("someid"), bb : 'Bird'}] }]

请注意我不想使用mongodb以外的任何其他npm模块。 我也希望在一个数据库查询中插入。

1 个答案:

答案 0 :(得分:2)

您的对象正确插入,只是console.log默认只显示两级对象详细信息。要显示所有对象级别,您需要直接调用util.inspect,以便控制:

console.log(util.inspect(models, {depth: null}));