使用$或$和两个MongoDB collectionDa重用数据

时间:2016-07-05 13:36:34

标签: mongodb mongoid mongodb-query spring-data-mongodb mongodb-java

我要做的是将POST消息的响应显示在我的webview中加载的HTML上。但是,我的webview显示为空白。我可以通过将其打印出来在LogCat中看到响应消息。但是,我的webview再次显示为空白。 Example.html是我的webview中的页面加载。我的实现如下:

$('span[id^="defaultLocalPrinterName"]').text(printerName);

1 个答案:

答案 0 :(得分:0)

我将在sudo代码中解释这一点,以便您可以提出解决方案。

答案的第一点是 - >不,你不能以直截了当的方式做到这一点。这背后的原因是MongoDB没有/支持连接。就像在SQL中一样,您可以连接两个表并查询条件结果;在MongoDB中也不可行。

但不要失去希望。您无法在数据库端进行连接,但您当然可以在驱动程序/应用程序方面提供解决方案。我建议你做的如下。 (我正在使用JAVA驱动程序和Morphia,因此我的解决方案和安排可能看起来特定于他们)

单独为两个集合设置DAO接口

public interface MyDAO1 extends DAO<MyClass1, ObjectId>
{
    public MyClass1 getByName(String name);
}
public interface MyDAO2 extends DAO<MyClass2, ObjectId>
{
    public MyClass2 getByResult(int result);
}

首先为上述两个接口创建实现类。这非常简单,所以我跳过它继续前进到真实的部分。有一个接口的实现

public class MyDAOImpl extends BasicDAO<MyClass, ObjectId> implements MyDAO1, MyDAO2
{
    public MyClass1 getByName (String name)
    {
        MyClass1 output= query collection1 with with the Name;
        return output;
    }
    public MyClass2 getByResult (int result)
    {
        MyClass2 output= query collection2 with with the result;
        return output;
    }
    public void getByNameResult (String name, int result)
    {
        MyClass1 output1 = getByName (name);
        MyClass2 output2 = getByResult (result);
        print them in however format you want OR create a string;
    }
}

请注意:

MyClass1是员工集合的@Entity类

MyClass2是结果集合的@Entity类