假设我们有多个文档,其中包含以下架构:
youtableview.contentInset = UIEdgeInsetsMake(x, 0, 0, 0);
是否可以根据有效价格订购结果集,或者另一种意思是可以根据最后价格订购结果(因为在我的情况下,有效价格总是最后价格)?
类似这样的事:{
"_id" : ObjectId("55ec6108794ac3cc530041ac"),
"product": "Product x",
"desc": "Blah Blah Blah",
"prices" : [
{
"price": 12.3,
"is_price_active": false,
},
{
"price": 15.3,
"is_price_active": false,
},
{
"price": 15,
"is_price_active": true,
}
]
}
提前致谢...
答案 0 :(得分:0)
你可以:
prices
is_price_active
和price
这样你就不会依赖活跃价格永远是最后一个的事实;有效价格可以在数组中的任何位置。
请求:
db.products.aggregate([
{$unwind : "$prices"},
{$sort : { "prices.is_price_active":-1, "prices.price" : 1 }},
{$group : { "_id" : {"_id" : "$_id", "product" : "$product", "desc" : "$desc"}, "prices" : {$push : "$prices"} }},
{$project : {"_id" : "$_id._id", "product" : "$_id.product", "desc" : "$_id.desc", "prices" : 1}}
]);