使用过滤器裁剪 mongo 个文档
Crop mongo document with filter
项目栈是Django + MongoDB(djongo库)。
我的订单 table 具有这样的数据结构
{
name:"Help",
price:123,
products:[
{
"_id":"some id",
"organization":{
"id":1
}
},
{
"_id":"some id2",
"organization":{
"id":2
}
}
]
}
如何获得组织 ID 字段等于 1 的 'products' 中项目的列表顺序?
我什么时候会得到这个列表,如何删除组织 ID 字段不等于 1 的产品集项目?
所以我应该得到这样的东西(价格字段不应该太)
{
name:"Help",
products:[
{
"_id":"some id",
"organization":{
"id":1
}
}
]
}
查询
$filter
个产品,只保留 organization.id=1
个产品
- 删除价格字段(
$$REMOVE
是系统变量,如果某个字段获得此值,则将其删除)
*您可以使用项目,它也是一样的,但是 $set
保留您可能没有改变的所有其他字段
aggregate(
[{"$set":
{"price":"$$REMOVE",
"products":
{"$filter":
{"input":"$products",
"cond":{"$eq":["$$this.organization.id", 1]}}}}}])
项目栈是Django + MongoDB(djongo库)。
我的订单 table 具有这样的数据结构
{
name:"Help",
price:123,
products:[
{
"_id":"some id",
"organization":{
"id":1
}
},
{
"_id":"some id2",
"organization":{
"id":2
}
}
]
}
如何获得组织 ID 字段等于 1 的 'products' 中项目的列表顺序?
我什么时候会得到这个列表,如何删除组织 ID 字段不等于 1 的产品集项目?
所以我应该得到这样的东西(价格字段不应该太)
{
name:"Help",
products:[
{
"_id":"some id",
"organization":{
"id":1
}
}
]
}
查询
$filter
个产品,只保留organization.id=1
个产品
- 删除价格字段(
$$REMOVE
是系统变量,如果某个字段获得此值,则将其删除)
*您可以使用项目,它也是一样的,但是 $set
保留您可能没有改变的所有其他字段
aggregate(
[{"$set":
{"price":"$$REMOVE",
"products":
{"$filter":
{"input":"$products",
"cond":{"$eq":["$$this.organization.id", 1]}}}}}])