从保存在节点 mongodb 本机中的 beeing 中排除字段

Exclude fields from beeing saved in node mongodb native

本文关键字:beeing 排除 字段 本机 保存 存在 节点 mongodb      更新时间:2023-09-26

我正在使用节点mongodb本机驱动程序将文档插入mongodb(原文如此!我的对象如下所示:

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

我想要实现的是,防止所有以下划线为前缀的字段不被保存。在上面的示例中,不应保存"_nonPersistentField"。

有没有办法(除了Object.defineProperty)来防止这些字段保存在节点mongodb本机中?

预解析器呢?不要使用 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 );
}

使用这种方式,您甚至看不到对象创建之类的内容,而不是:

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

您正在使用:

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