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
属性。