sql >> Base de Datos >  >> NoSQL >> MongoDB

Los campos adicionales de Mongo dbref son invisibles en mongoshell. ¿Cómo mostrarlos?

El shell de Mongo es una extensión de Mozilla SpiderMonkey (¿1.7?) y tiene una funcionalidad bastante básica.

La sugerencia de una publicación de blog de MongoDB sobre el shell es definir lo siguiente inspect función en .mongorc.js en su directorio de inicio

function inspect(o, i) {
    if (typeof i == "undefined") {
        i = "";
    }
    if (i.length > 50) {
        return "[MAX ITERATIONS]";
    }
    var r = [];
    for (var p in o) {
        var t = typeof o[p];
        r.push(i + "\"" + p + "\" (" + t + ") => " + 
              (t == "object" ? "object:" + inspect(o[p], i + "  ") : o[p] + ""));
    }
    return r.join(i + "\n");
}

Además, puede redefinir la función DBRef.toString como algo como:

DBRef.prototype.toString = function () {
    var r = ['"$ref": ' + tojson(this.$ref), '"$id": ' + tojson(this.$id)];
    var o = this;
    for (var p in o) {
        if (p !== '$ref' && p !== '$id') {
            var t = typeof o[p];
            r.push('"' + p + '" (' + t + ') : ' + 
                (t == 'object' ? 'object: {...}' : o[p] + ''));
        }
    }
    return 'DBRef(' + r.join(', ') + ')';
};