0

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

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

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

从概念上讲,

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

提供了足够的信息,我只是不知道 Mongoose 是否对此有机制。

4

1 回答 1

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.
});
于 2013-08-09T01:40:50.853 回答