Node.js mongodb将子文档插入为:[对象]

Node.js mongodb将子文档插入为:[对象],node.js,mongodb,Node.js,Mongodb,我正在使用nodejs中的mongodb驱动程序将数据插入mongodb var mongodb = require('mongodb'); var insert = function(uri, collectionName, data, next) { mongodb.MongoClient.connect(uri, function(err, driverDb) { if(err) { next(err); } else {

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

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模块。
我还想在一个db查询中插入。

您的对象插入正确,只是
控制台。默认情况下,log
仅显示两个级别的对象详细信息。要显示所有需要直接调用的对象级别,以便可以控制:

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

当我使用console.log(models[0].b[0].\u id)时,我得到的是未定义的。为什么会这样?除非手动将
b
数组元素包含在传递给
insert
的对象中,否则它们不会具有
\u id
属性。