【发布时间】:2022-01-04 14:18:11
【问题描述】:
我需要在同一个文档中将一个数组元素从一个数组移动到另一个数组,并从原来的数组中删除该元素。
// Document
{
_id: ObjectId("67dc90594947be000838f7a7"),
persons: [
{
personId: "61cd90594947be000838f7c1",
name: "John Doe",
employment: [
{
employmentId: "61cd9059494abe000838f7c8",
type: "Full time",
salary: 1010101
}
]
},
{
personId: "61cd90594947be000838f7c2",
name: "Jane Austin",
employment: [
{
employmentId: "61cd9059494abe000738f7c1",
type: "Part time",
salary: 11011111
}
]
},
]
}
我需要将一个雇佣元素从 John Doe 移到 Jane Austin,并且这两个人都在同一个文档中。我需要从 John Doe 中删除移动的元素。
employmentId 用于确定要调动的工作。而personId是用来标识从哪个人那里移动到哪个人那里的。
负载示例
const updatePayload = {
fromPerson: "61cd90594947be000838f7c1",
toPerson: "61cd90594947be000838f7c2",
employmentId: "61cd9059494abe000838f7c8",
}
预期结果
// employment from John Doe is moved to Jane Austin
{
_id: ObjectId("67dc90594947be000838f7a7"),
persons: [
{
personId: "61cd90594947be000838f7c1",
name: "John Doe",
employment: [ ]
},
{
personId: "61cd90594947be000838f7c2",
name: "Jane Austin",
employment: [
{
employmentId: "61cd9059494abe000738f7c1",
type: "Part time",
salary: 11011111
},
{
employmentId: "61cd9059494abe000838f7c8",
type: "Full time",
salary: 1010101
}
]
},
]
}
【问题讨论】:
标签: node.js arrays mongodb mongodb-query aggregation-framework