Play Framework 2.5如何添加mongoDB?

时间:2016-11-02 10:11:20

标签: java mongodb playframework-2.0

我想在Play Framework 2.5应用程序中添加MongoDB。
我们可以在PF的文档中看到这个模块here 如何在我的应用程序中添加此模块?
@MongoEntity非常有用,但它是为1. * PF app写的。

有2.5 PF的MongoDB模块?
还有一件事我试过:添加play-mongo模块(通过louth)为2. *但是在我的build.sbt中添加它们是不可能的: image

1 个答案:

答案 0 :(得分:6)

您是使用Scala还是Java?

对于Scala,请查看ReactMongo

对于Java,我也没遇到任何插件,所以我开始使用Morphia。这是我配置它的方式

将此添加到build.sbt

    "org.mongodb.morphia" % "morphia" % "1.2.1",

这是app.conf

    mongodb {
      host="localhost"
      port=27017
      database="my_db"
    }

现在,您必须创建一个类似

的Singleton类
public class MongoConfig {

    private static Datastore datastore;

    public static Datastore datastore() {
        if (datastore == null) {
            initDatastore();
        }
        return datastore;
    }

    public static void initDatastore() {

        final Morphia morphia = new Morphia();

        // Tell Morphia where to find our models
        morphia.mapPackage("models");

        MongoClient mongoClient = new MongoClient(
            ConfigFactory.load().getString("mongodb.host"),
            ConfigFactory.load().getInt("mongodb.port"));

        datastore = morphia.createDatastore(
            mongoClient, ConfigFactory.load().getString("mongodb.database"));
    }

}

样本模型

@Entity(value = "users", noClassnameStored = true)
public class User {

    public String name;

    public void save() {
        datastore().save(this);
    }

    public User query() {
        return datastore()
            .createQuery(User.class)
            .get();   
    }

}

这对你有用。如果我错过任何事情,请告诉我。祝好运! :)