| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package com.weEat.migrations
- import org.mongodb.scala.MongoDatabase
- import gov.usda.nal.fdc.models.Nutrient
- import com.mongodb.client.model._
- import org.mongodb.scala.model.Filters._
- import org.mongodb.scala.model.Indexes._
- import org.bson.BsonType._
- import scala.concurrent.{ExecutionContext,Future}
- import com.weEat.models.{Nutrient => NutrientCollection}
- object SeedNutrition extends Migration {
-
- implicit val ec: ExecutionContext = ExecutionContext.global
- private def typ = `type` _
- def execute(db: MongoDatabase) = Future.sequence(Seq(
- createNutritionCollection(db)
- ))
- def createNutritionCollection(db: MongoDatabase) =
- db.createCollection(NutrientCollection.collectionName,
- new CreateCollectionOptions().validationOptions(
- new ValidationOptions().validator(
- and(
- typ("number", STRING),
- typ("unitName", STRING),
- typ("name", STRING),
- typ("id", INT32),
- typ("rank", INT32)
- )
- )
- )
- ).head().map(_ => {
- val nutrs = db.getCollection[Nutrient](NutrientCollection.collectionName)
- nutrs.createIndex(
- ascending("number"), new IndexOptions().unique(true)
- ).head()
- }).flatten
- }
|