排除保存在节点mongodb native中的字段

我使用节点mongodb本地驱动程序将文档插入到mongodb(sic!)中。 我的对象是这样的:

var x = { field: 'value', _nonPersistentField: 'Do not save that' }; 

我想要实现的是防止所有以下划线开头的字段不被保存。 在上面的例子中,'_nonPersistentField'不应该被保存。

有没有一种方法(除了Object.defineProperty),以防止这些字段被保存在节点mongodb本机?

那么预parsing器呢? 而不是使用mongo客户端的save ,请使用:

 function save( obj, callback ) { var tmp = {}; Object.keys( obj ).forEach( function( key ) { if ( key.substr( 0, 1 ) !== '_' ) { tmp[ key ] = obj[ key ]; } } ); // Now that the object is filtered, use mongodb's client mongodb.save( tmp, callback ); } 

使用这种方式,你甚至不会看到对象的创build和什么,而不是:

 mongodb.save( obj, function( err, results ) { } ); 

您正在使用:

 save( obj, function( err, results ) { } );