Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 将属性作为case类的列表返回_Mongodb_Scala_Reactivemongo - Fatal编程技术网

Mongodb 将属性作为case类的列表返回

Mongodb 将属性作为case类的列表返回,mongodb,scala,reactivemongo,Mongodb,Scala,Reactivemongo,假设我有 case class Foo(_id: BSONObjectID, bars: Set[Bar]) case class Bar(_id: BSONObjectID, name: String) 如何使用投影获取特定Foo的条 我试过(省略处理程序的声明) 但它不起作用 关于如果您只考虑每个文件的栏>代码>字段为设置[BAR] ,光标不是栏>代码>一个,但是光标[SET[BAR] ] /,因此您必须在范围内有一个 BSONReader 。@ CcChanTip我已经尝试过,但是我获得

假设我有

case class Foo(_id: BSONObjectID, bars: Set[Bar])
case class Bar(_id: BSONObjectID, name: String)
如何使用投影获取特定
Foo

我试过(省略处理程序的声明)

但它不起作用


关于

如果您只考虑每个文件的<代码>栏>代码>字段为<代码>设置[BAR] ,光标不是<代码>栏>代码>一个,但是<代码>光标[SET[BAR] ] /<代码>,因此您必须在范围内有一个<代码> BSONReader <代码>。@ CcChanTip我已经尝试过,但是我获得
无法找到参数读取器的隐式值:reactivemongo.bson.BSONDocumentReader[Set[Bar]]
。我是否缺少导入?@cchantep我在描述中省略了以下内容(我认为这很明显,但可能不是)
implicit val bsonF=Macros.handler[Bar]
Set
没有提供标准的
BSONReader
(因为它可能不安全),因此,您要么浏览
列表
,要么实现自己的
读取器。没有为这种边缘情况提供
BSONDocumentReader
。您必须实现自己的
隐式def myEdgeReader(隐式br:BSONReader[_
val bars: Future[Option[Set[Bar]]] = fooes.find(
  BSONDocument("_id" -> BSONObjectID("specificId")), // Match condition
  BSONDocument("_id" -> 0, "bars" -> 1)              // Projection
).cursor[Bar]().collect[Set]()