Я использую mon go - scala -driver 2.9.0, и это функция сохранения списка рекомендаций пользователя в MongoDB. Аргумент streamRecs является массивом (productId: Int, оценка: Double). Теперь я хочу вставить документ, состоящий из useId и его соответствующего списка рекомендаций recs . Однако в строке val doc:Document = Document("userId" -> userId,"recs"->recs)
есть ошибка. Кто-нибудь знает, что идет не так?
def saveRecsToMongoDB(userId: Int, streamRecs: Array[(Int, Double)])(implicit mongoConfig: MongoConfig): Unit ={
val streamRecsCollection = ConnHelper.mongoClient.getDatabase(mongoConfig.db).getCollection(STREAM_RECS_COLLECTION)
streamRecsCollection.findOneAndDelete(equal("userId",userId))
val recs: Array[Document] = streamRecs.map(item=>Document("productId"->item._1,"score"->item._2))
val doc:Document = Document("userId" -> userId,"recs"->recs)
streamRecsCollection.insertOne(doc)
}
документ, который я хочу вставить в MongoDB, выглядит следующим образом (это означает, что пользователь и его рекомендации и оценки):
{
"_id":****,
"userId":****,
"recs":[
{
"productId":****,
"score":****
},
{
"productId":****,
"score":****
},
{
"productId":****,
"score":****
},
{
"productId":****,
"score":****
}
]
}