import com.escalatesoft.subcut.inject._
import com.mongodb.casbah.Imports._
import com.novus.salat._
import com.novus.salat.global._
import com.novus.salat.dao._
case class User(_id: ObjectId = new ObjectId, email: String, password: String)
class UserDAO(coll: MongoCollection = DatabaseClient.getCollection("users")) extends SalatDAO[User, ObjectId](
collection = coll
)
class UserRepository(implicit val bindingModule: BindingModule) extends Injectable {
val userDAO = injectOptional [UserDAO] getOrElse {new UserDAO}
def createUser (email: String, password: String):Option[ObjectId] = {
val newUser = User(email = email, password = password)
val createdUser = userDAO.insert(newUser)
createdUser
}
}
기본적으로 새 사용자를 삽입하면 정확히 예상 한 일부 ("새 사용자의 ObjectId")가 반환됩니다. 그러나 색인에 이메일을 넣으면 중복 키 오류가 발생합니다. 내가 원하는 것은 중복 키 오류를받는 대신 None 옵션을 얻는 것입니다. 컬렉션에서 읽었을 때처럼 일치하는 문서가없는 것과 같습니다.어떻게 얻을 수 없음 mongodb에서 오류가 발생했을 때 salatDAO의 옵션
MongoDB에서 중복 키 오류를 반환하면 없음 옵션을 어떻게 얻을 수 있습니까?
또는 내가이 오류를 어떻게 처리해야합니까?