typescript - Mongoose 仅拉取数组内数组中的单个字符串
问题描述
我在猫鼬中有以下文件。而且我只想拉字符串而不是删除对象。
[{
"_id": {
"$oid": "6051e87aa8698c13fb4951fa"
},
"user": {
"$oid": "6051e87aa8698c13fb4951f7"
},
"channelDetail": [
{
"hiddenchannels": [],
"thingchannels": [],
"_id": {
"$oid": "6051e87aa8698c13fb4951fb"
},
"room": {
"$oid": "6051e87aa8698c13fb4951f9"
}
},
{
"room": {
"$oid": "60a8e3f685b8741eaef56e25"
},
"_id": {
"$oid": "60e03c7076b5d3915dad1c3b"
},
"thingchannels": [
{
"$oid": "60e0158af5f1cf131bbb7be6"
},
{
"$oid": "60e0158af5f1cf131bbb7be7"
},
{
"$oid": "60e0158af5f1cf131bbb7be8"
},
{
"$oid": "60e0158af5f1cf131bbb7be9"
}
],
"hiddenchannels": []
},
{
"hiddenchannels": [],
"thingchannels": [],
"_id": {
"$oid": "60e02c651b08eb18ac565770"
},
"room": {
"$oid": "60e02c5c1b08eb18ac56576f"
}
}
],
"__v": 13,
"localUpdateAt": 1625306846846
}]
现在我想删除thingchannels
数组中的单个字符串,但查询返回完整对象而不是删除字符串。
await this.roomUserDetail.updateMany(
{ "channelDetail.thingchannels": { $in: ["60e0158af5f1cf131bbb7be6"] } },
{
$pull: {
channelDetail: {
thingchannels: { $in: ["60e0158af5f1cf131bbb7be6"] },
},
},
}
);
有没有办法只删除字符串数组中的一个字符串?
解决方案
尝试以下,我也尝试过,工作正常。
await this.roomUserDetail.updateMany({
"channelDetail.thingchannels": {
$in: [mongoose.Types.ObjectId("60e0158af5f1cf131bbb7be6")]
}
},{
$pull:{
"channelDetail.$[].thingchannels":{
$in:[mongoose.Types.ObjectId("60e0158af5f1cf131bbb7be6")]
}
}
})
查询运行后的输出:
{
"user": {
"$oid": "6051e87aa8698c13fb4951f7"
},
"channelDetail": [{
"hiddenchannels": [],
"thingchannels": [],
"_id": {
"$oid": "6051e87aa8698c13fb4951fb"
},
"room": {
"$oid": "6051e87aa8698c13fb4951f9"
}
}, {
"room": {
"$oid": "60a8e3f685b8741eaef56e25"
},
"_id": {
"$oid": "60e03c7076b5d3915dad1c3b"
},
"thingchannels": [{
"$oid": "60e0158af5f1cf131bbb7be7"
}, {
"$oid": "60e0158af5f1cf131bbb7be8"
}, {
"$oid": "60e0158af5f1cf131bbb7be9"
}],
"hiddenchannels": []
}, {
"hiddenchannels": [],
"thingchannels": [],
"_id": {
"$oid": "60e02c651b08eb18ac565770"
},
"room": {
"$oid": "60e02c5c1b08eb18ac56576f"
}
}],
"__v": 13,
"localUpdateAt": 1625306846846
}
推荐阅读
- java - Spring中的Kotlin setter依赖注入
- lua - 在表中动态构建子表
- vba - 使用 VBA 将图表从 Excel 复制到 PowerPoint
- ios - MeasurementNanoPB.framework 有什么用?
- amazon-web-services - Terraform aws安全组revoke_rule_on_delete?
- python - 为什么我的情节中没有显示所有图例?
- c - CS50 Pset3 音乐最终计算
- python - LogoutView() 收到无效的关键字“名称”。as_view 只接受已经是类属性的参数?
- nginx - nginx重写规则删除以下字符
- powershell - PowerShell:Import-CSV 返回不在源文件中的标头名称和括号