Итак, у меня есть коллекция новостных статей, оцененных по просмотрам страниц из БД Mongo, которые я запрашиваю следующим образом:
// To directly connect to the default server localhost on port 27017
val mongoClient: MongoClient = MongoClient("mongodb://localhost:27017/")
val database: MongoDatabase = mongoClient.getDatabase("Posts")
var collection: MongoCollection[Document] = database.getCollection("news")
collection.find(equal("id","id123")).limit(5).subscribe((doc: Document)=>println(s"${doc.get("views")}"))
Это печатает:
Some(BsonInt32{value=66043})
Some(BsonInt32{value=66306})
Some(BsonInt32{value=66336})
Some(BsonInt32{value=66365})
Some(BsonInt32{value=66384})
Так что теперь я хочусобрать все эти значения в массив, который я пытался сделать с помощью этой строки кода:
var scores = collection.find(equal("id","id123")).limit(5).subscribe((doc: Document)=>doc.get("score").map(_.asInt32().getValue).collect())
Но .collect()
не работает.
Как лучше всего превратить поле Монго в массив Ints?