0
下面的代碼首先在一個字段上連接兩個集合,並嘗試過濾其他字段上的值。
db.zeroDimFacts.aggregate(
{$lookup:{from:"zeroDim",localField:"Kind",foreignField:"Model", as:"EmbedUp"}},
{$project: {"EmSub":"$EmbedUp.Sub","Result": {$eq:["$Type","$EmbedUp.Sub"]}, "type":"$Type"}})
請檢查以下輸出的代碼。即使'EmSub'&'$ Type'具有相同的值,但它不會顯示在「結果」字段中。 如果是因爲'EmSub'顯示爲數組,我如何比較只包含該數組中的值?
/* 1 */
{
"_id" : NumberLong(1),
"EmSub" : [
"Fruit"
],
"Result" : false,
"type" : "Fruit"
}
/* 2 */
{
"_id" : NumberLong(2),
"EmSub" : [
"Fruit"
],
"Result" : false,
"type" : "Fruit"
}
/* 3 */
{
"_id" : NumberLong(3),
"EmSub" : [
"Fruit"
],
"Result" : false,
"type" : "Fruit"
}
儘量$ EQ: 「$類型」, 「$ EmbedUp.Sub $。」] –
@AmiramKorach:得到下面的錯誤: 斷言:命令失敗:{ \t「ok」:0, \t「errmsg」:「FieldPath字段名稱可能不以'$'開頭。」, \t「code」:16410 }:聚合失敗 –
對不起。嘗試:「EmSub」:{$ first:「$ EmbedUp.Sub」}和比較$ eq:[「$ Type」,{$ first:「$ EmbedUp.Sub」}] –