我有以下形式的文件:
{
_id : ObjectId(.....),
prop1 : "foo",
links : [ 1, 2, 3, 4 ]
}
{
_id : ObjectId(.....),
prop1 : "bar",
links : [ 5, 6, 7, 8 ]
}
Run Code Online (Sandbox Code Playgroud)
我使用聚合框架来处理这些文档,我使用$ unwind为links数组中的每个值生成一个文档.
但我有三种情况需要在调用$ unwind之前更新文档,我一直在查看$ project操作,但我找不到有关如何为以下情况创建或更新数组的信息.
1)缺少链接属性
{
_id : ObjectId(.....),
prop1 : "far"
}
Run Code Online (Sandbox Code Playgroud)
我需要插入链接数组
2)links数组属性是一个空数组
{
_id : ObjectId(.....),
prop1 : "far",
links : []
}
Run Code Online (Sandbox Code Playgroud)
我需要在数组中插入一个值
3)links数组的值太少
{
_id : ObjectId(.....),
prop1 : "far",
links : [ 9, 10 ]
}
Run Code Online (Sandbox Code Playgroud)
我需要在数组中插入其他值