是否可以在mongodb中查看视图?

时间:2018-02-28 17:36:31

标签: mongodb aggregation-framework

我正在尝试使用带有$ lookup阶段的聚合构建一个新的mongodb视图,该阶段连接到我构建的mongodb视图。

以下是我的视图中名为myPreferencesView的结果输出示例:

{ 
    "_id" : ObjectId("58c3127b30abaf0d1ae38235"), 
    "name" : "Preference 1", 
    "pointValue" : NumberInt(12), 
    "description" : "This is the desc for preference #1"
},
{ 
    "_id" : ObjectId("58c3127b30abaf0d1ae38234"), 
    "name" : "Preference 2", 
    "pointValue" : NumberInt(10), 
    "description" : "This is the desc for preference #2"
}

这是我试过的$ lookup语法:

    $lookup:
    {
        from: "myPreferencesView (on: myPreferenceCollection)",
        localField: "preference",
        foreignField: "_id",
        as: "pref"
    }

我得到的结果如下:

{ 
    "_id" : ObjectId("58c3127b30abaf0d1ae3822f"), 
    "preference" : ObjectId("58c3127b30abaf0d1ae38232"), 
    "pref" : [
    ]
}

我得到一个空的pref数组。我首先想知道,聚合或视图可以在mongodb视图上执行$ lookup。

其次,是否需要特殊的语法?

我已尝试对上面列出的查找语法进行一些不同的调整。大多数这些尝试显然是错误的,因为它们没有产生可行的结果。上面的语法似乎"没有打破"但它也没有产生所需的输出。

1 个答案:

答案 0 :(得分:0)

事实证明,原始问题中发布的语法很好,而且确实有效。我遇到的问题是"子视图"我在$ lookup阶段指定的名称有一个外壳问题。