0

我需要通过嵌入文档映射中的属性进行过滤,问题是它被引用了。

游戏 -> 结构。

"_id" : ObjectId( "51051e7d8ead0ebd4e000000" ),
  "active" : true,
  "created" : 1359289981,
  "difficulty" : 0,
  "map" : { "$ref" : "Map",
    "$id" : ObjectId( "5103c0228ead0e3764000000" ),
    "$db" : "fantasytd" },
  "mode" : "coop",

对于未引用的嵌入文档,这就足够了

$q->field('map.playerLimit')->equals($playerLimit);

我尝试使用

$q->field('map')->prime()

但是没有运气,正确的方法是什么?

4

1 回答 1

1

没门。以标准方式,您可以按 map.$ref/map.$id/map.$db 过滤集合,其中 map.$id 查询非常有用。通过引用文档的其他属性过滤完全是另一回事。也许您可以将 intersted 属性保存在 DBRef 中并正常查询它,这是您不应该的,并且在将来的某些版本中将无法使用。

于 2013-01-28T09:26:09.223 回答