MongooseJS Query选择子文档的属性

时间:2013-08-09 00:44:06

标签: mongodb mongoose

给定具有以下模式的模型foo;

{
    a: String,
    b: [{c: String, d: String}]
}

假设a的值是唯一的,并假设给定c文档中foo的值是唯一的。如果我分别有ac的值 A C ,则 A 唯一标识{{1文档和 C 唯一标识foo子文档。那么,是否有可能伪造一个向我返回foo.b的价值的查询?

从概念上讲,

foo ----(find({a: A }))-----> foo_document -----(find({c: C }))------> foo_subdoc -------(select(d))----&gt ; value_of_d

给出了足够的信息,我只是不知道Mongoose是否有这样的机制。

1 个答案:

答案 0 :(得分:1)

您可以使用$elemMatch投影运算符来识别匹配的b元素以包含:

 
foo.find({a: A}, {b: {$elemMatch: {c: C}}}, function(err, doc) {
    // doc.b[0].d contains the value of d you're looking for.
});