我有如下形式的文件:
{
_id : ObjectId(.....),
prop1 : "foo",
links : [ 1, 2, 3, 4 ]
}
{
_id : ObjectId(.....),
prop1 : "bar",
links : [ 5, 6, 7, 8 ]
}
我使用聚合框架來處理這些文件,我用$放鬆,生成文檔中鏈接數組中的每個值。
但我有三種情況需要在調用$ unwind之前更新文檔,我一直在尋找$ project操作,但是我找不到有關如何爲以下情況創建或更新數組的信息。
1)中的鏈接屬性缺失
{
_id : ObjectId(.....),
prop1 : "far"
}
我需要插入的鏈接陣列
2)中的鏈接陣列屬性爲空數組
{
_id : ObjectId(.....),
prop1 : "far",
links : []
}
我需要插入將值存入數組
3)鏈接數組的值太少
{
_id : ObjectId(.....),
prop1 : "far",
links : [ 9, 10 ]
}
我需要插入額外的值到數組
我看''cond'有條件地添加值:http://docs.mongodb.org/manual/reference/operator/aggregation/cond/ – WiredPrairie
我熟悉$ cond,問題我的是,我不知道如何實際創建數組或更新數組值。我剛更新了這個問題以更好地反映這一點。 – user2808819
你不能永久修改文件。只有在流水線期間,您纔可以修改字段的值。 – WiredPrairie