У меня есть коллекция MongoDB, который имеет документ в следующем формате:
result of MyCollection.find({"_id": "20141029"})
{
"_id" : "20141029",
"portfolio_returns" : [
{
"data" : [
{
"report" : {
"open" : {
"returns_rs" : 398.8
},
"both" : {
"returns_rs" : 1054.800
}
},
"portfolio" : "Mystocks"
}
],
"user" : "[email protected]"
},
{
"data" : [
{
"report" : {
"open" : {
"returns_rs" : 5000
},
"both" : {
"returns_rs" : 5500
}
},
"portfolio" : "pff"
}
],
"user" : "[email protected]"
}
],
'portfolio_stock_gain_or_loss': [
{
"data" : [
{
"portfolio" : "gm",
"stocks" : [ ]
}
],
"user" : "[email protected]"
},
{
"data" : [
{
"portfolio" : "Mystocks",
"stocks" : [
{
"open" : {
"returns_rs" : 9144
},
"scripcode" : "532540",
"both" : {
"returns_rs" : 9426.75
}
},
{
"open" : {
"returns_rs" : 254.80
},
"scripcode" : "500790",
"both" : {
"returns_rs" : 254.80
}
}
]
}
],
"user" : "[email protected]"
},
{
"data" : [
{
"portfolio" : "pff",
"stocks" : [
{
"open" : {
"returns_rs" : 4000
},
"scripcode" : "500790",
"both" : {
"returns_rs" : 8500
}
},
{
"open" : {
"returns_rs" : 0
},
"scripcode" : "533151",
"both" : {
"returns_rs" : 0
}
}
]
}
],
"user" : "[email protected]"
}
]
}
Мой вопрос, как я могу отфильтровать данные из этого doccument, которые имеют «portfolio_stock_gain_or_loss.data. stocks.open.returns_rs "больше 1000, используя pymongo.
Ожидая из положить является
{
"_id" : "20141029",
'portfolio_stock_gain_or_loss': [
{
"data" : [
{
"portfolio" : "Mystocks",
"stocks" : [
{
"open" : {
"returns_rs" : 9144
},
"scripcode" : "532540",
"both" : {
"returns_rs" : 9426.75
}
}
]
}
],
"user" : "[email protected]"
},
{
"data" : [
{
"portfolio" : "pff",
"stocks" : [
{
"open" : {
"returns_rs" : 4000
},
"scripcode" : "500790",
"both" : {
"returns_rs" : 8500
}
},
]
}
],
"user" : "[email protected]"
}
]
}
Любые идеи, как я могу это сделать на существующих данных, или мне нужно менять формат?
Большое спасибо
Если вы хотите взять существующий документ и возвращать только элементы вложенного массива, которые <= 1000, вам нужно будет сделать фильтрацию на стороне клиента так как в MongoDB нет возможности сделать это. – wdberkeley