php - 根据id从mongodb中的嵌套数组中删除数组
问题描述
我在 mongodb 中有一个数组,我想根据我拥有的 id 在其中删除一个嵌套数组
下面是我的数组结构
{
"_id" : ObjectId("5b17b991c440782b5a218cd1"),
"product" : [
{
"id" : ObjectId("5b71310eeff5c42f00f8a4e8"),
"vendor_user_id" : ObjectId("5b17b992c440782b5a218cd2"),
"product_type_id" : ObjectId("5ae834807ae0d9538e45ab45"),
"condition_id" : [
{
"_id" : ObjectId("5ae977da7ff1706f3b7dc47a"),
"status" : 1,
"date_added" : "2018-08-10-09-55-54"
}
],
"shipping_cost" : NumberLong(100),
"date_added" : "2018-08-10-09-55-54",
"date_status_change" : "2018-08-10-09-55-54",
"status" : 1
},
{
"id" : ObjectId("5b76ae3a40c1c449d6409fa3"),
"vendor_user_id" : ObjectId("5b17b992c440782b5a218cd2"),
"product_type_id" : ObjectId("5ae8348b7ae0d9538e45ab46"),
"condition_id" : [
{
"_id" : ObjectId("5ae977da7ff1706f3b7dc47a"),
"status" : 0,
"date_added" : "2018-08-17-11-15-06"
},
{
"_id" : ObjectId("5ae978187ff1706f3b7dc47c"),
"status" : 0,
"date_added" : "2018-08-17-11-15-06"
}
],
"shipping_cost" : 100,
"date_added" : "2018-08-17-11-15-06",
"date_status_change" : "2018-08-17-11-15-06",
"status" : 0
},
]
例如,我想删除condition_id
基于它_id
和_id
该数组块的特定数组。例如,如果我想删除第一个,condition_id
我将拥有ObjectId('5ae977da7ff1706f3b7dc47a')
condition_id 和ObjectId('5b71310eeff5c42f00f8a4e8')
该id
块的值。
到目前为止,我已经尝试过了
db.vendor.update({_id:ObjectId('5b17b991c440782b5a218cd1')}, {$pull: {product: {id: ObjectId('5b71310eeff5c42f00f8a4e8')},condition_id:{_id:ObjectId('5ae977da7ff1706f3b7dc47a')}}});
编辑1:
我试过这个..它甚至不匹配数组
db.vendor.update( { "_id": ObjectId("5b17b991c440782b5a218cd1")},{ "$pull": { "product.$.id": ObjectId('5b71310eeff5c42f00f8a4e8') } } );
解决方案
推荐阅读
- c++ - const 到 const char* 的无效转换,我该如何解决?gcc7 失败
- python - 无法在 macOS Catalina 10.15.4 上安装 bsddb3 Python 包
- javascript - TypeScript 获取嵌套在 JSON 中的对象
- python - How to have a static board on tic tac toe?
- sequelize.js - 使用 sequelize 创建新条目后包括连接表数据
- amazon-web-services - AWS API Gateway RestAPI 是否允许在 API RestAPI 级别本地创建基于路径的版本控制?
- node.js - 如何在使用流通过 WebRTC 数据通道发送文件时下载传入文件并防止背压?
- ruby-on-rails - Searchkick:提升未来日期
- python-3.x - 在查询中比较 SQL 日期时间对象和 Python 日期时间对象的正确方法是什么?
- php - 如何使用 PHP 和服务帐户创建辅助谷歌日历?