Arrays 如何在Mongo中从数组数组中提取元素
我正在努力寻找通过Mongoose从Mongo中的数组数组中删除元素(具有_id)的查询格式。我已经阅读并搜索过了,但无法获得正确的查询格式 我知道:MySchema中文档的_id,outerArray中数组元素的_id,以及innerray中数组元素的_id 有人能指出我做错了什么吗?谢谢大家! Mongo模式:Arrays 如何在Mongo中从数组数组中提取元素,arrays,mongodb,mongoose,Arrays,Mongodb,Mongoose,我正在努力寻找通过Mongoose从Mongo中的数组数组中删除元素(具有_id)的查询格式。我已经阅读并搜索过了,但无法获得正确的查询格式 我知道:MySchema中文档的_id,outerArray中数组元素的_id,以及innerray中数组元素的_id 有人能指出我做错了什么吗?谢谢大家! Mongo模式: MySchema { outerArray: [ { field1 : String, innerArray [ {
MySchema {
outerArray: [ {
field1 : String,
innerArray [ {
field2: String
} ]
} ]
}
Mongoose查询-这不起作用:
MySchema.findByIdAndUpdate(
mongoose.Types.ObjectId(docId),
{
$pull: {
'outerArray': {
$elemMatch: {
'_id': mongoose.Types.ObjectId(outerArrayDocId),
'innerArray': {
'_id': mongoose.Types.ObjectId(innerArrayDocId)
}
}
}
}
},
(err : mongoose.Error, updated : any) => {
});
您可以使用以下查询来解决问题:
MySchema.findOneAndUpdate(
{_id: docId, 'outerArray._id': outerArrayDocId},
{
$pull: {
'outerArray.$.innerArray': {
_id: innerArrayDocId
}
}
},
(err : mongoose.Error, updated : any) => {
});