【问题标题】:How to get string value inside a Mongodb document?如何在 Mongodb 文档中获取字符串值?
【发布时间】:2011-11-07 06:29:41
【问题描述】:

我有这个文档存储在 mongodb 文档中:

{
    "_id":ObjectId("4eb7642ba899edcc31000001")
    "hash":"abcd123"
    "value":"some_text_here"
}

我正在使用 NodeJS 访问数据库:

collection.findOne({'hash' : req.param('query') }, 
    function(err, result){ 
    console.log(res);   
});

此查询的结果是整个文档,但我只需要获取“值”文本:“some_text_here”

如何做到这一点?

【问题讨论】:

    标签: mongodb node.js


    【解决方案1】:

    您可以指定您感兴趣的字段(但总是会返回_id):

    collection.findOne({'hash': req.param('query') },
                       {fields: ['value'] },
                       callbackFunction );
    

    【讨论】:

    • 我用 Mongodb shell 尝试过这个来检查它,但是我只是得到一个只有“_id”字段的 json 对象。
    • 该示例适用于 node.js 驱动程序。 MongoDB shell 有不同的语法:findOne({hash: 'x'}, {value:1})mongodb.org/display/DOCS/Querying#Querying-FieldSelection
    【解决方案2】:

    你可以这样做:

    collection.findOne({'hash' : req.param('query') }, 
        function(err, result){ 
            console.log(result.value);   
    });
    

    【讨论】:

    • 这个查询结果是整个 json 文档,我需要一些能输出我需要的字段值的东西。这可能吗?
    • 不,你不能。您将始终收到至少具有 _id 属性的对象。 mongodb.org/display/DOCS/Querying#Querying-FieldSelection
    • 但是您可以过滤掉除 _id 和您需要的一个字段之外的所有其他内容。
    猜你喜欢
    • 1970-01-01
    • 2014-11-06
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多