diff --git a/lib/modes/shell.js b/lib/modes/shell.js index b054481..db3971a 100644 --- a/lib/modes/shell.js +++ b/lib/modes/shell.js @@ -111,9 +111,10 @@ module.exports.serialize = { if ( typeof v.oid === 'object' && - module.exports.serialize[v.oid.constructor.name] + v.oid !== null && + (module.exports.serialize[v.oid._bsontype] || module.exports.serialize[v.oid.constructor.name]) ) { - id = module.exports.serialize[v.oid.constructor.name](v.oid); + id = (module.exports.serialize[v.oid._bsontype] || module.exports.serialize[v.oid.constructor.name])(v.oid); } else if (typeof v.oid === 'string') { id = '"' + v.oid + '"'; } else { diff --git a/lib/modes/strict.js b/lib/modes/strict.js index 4d9e993..d21f87f 100644 --- a/lib/modes/strict.js +++ b/lib/modes/strict.js @@ -30,8 +30,9 @@ module.exports = { }; }, DBRef: function(v) { - var id = typeof v.oid === 'object' - && module.exports.serialize[v.oid.constructor.name] ? module.exports.serialize[v.oid.constructor.name](v.oid) + var id = typeof v.oid === 'object' && v.oid !== null && + (module.exports.serialize[v.oid._bsontype] || module.exports.serialize[v.oid.constructor.name]) ? + (module.exports.serialize[v.oid._bsontype] || module.exports.serialize[v.oid.constructor.name])(v.oid) : v.oid; return { $ref: v.namespace,