使用ObjectId获取子文档属性的最佳方法是什么?

时间:2012-10-10 11:51:21

标签: javascript node.js mongodb mongoose

我有2个集合:文档和类型。 在Docs中我有文件:

{
    '_id': ObjectId('0000'),
    'name': 'someName',
    'type': ObjectId('1111') // id i have
}

在类型中:

{
    '_id': ObjectId('2222'),
    'for': 'Docs',
    'types': [
        {
            '_id': ObjectId('1111'), // type i need
            'name': 'someType' // want to get this name
        }
         // , and so on
    ]
}

Docs.findOne({_id: '0000'})之后我有type = ObjectId('1111')(id为'someType')。获取someType的名称值的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以在findOne的字段选择参数中使用$位置运算符来提取匹配元素:

Types.findOne({'types._id': someTypeId}, {'types.$': 1}, function (err, type) {
    if (type) {
        console.log('Type name is: ' + type.types[0].name);
    }
});