0
我想應用條件的Mongo Db的聚合輸出,但仍然沒有弄清楚這個想法。下面是我的示例文件:如何應用過濾器來輸出Mongo Db的聚合框架?
{
'id':1,
'customerReviews':[5,7,8],
'expertReviews':[9,8,9]
},
{
'id':1,
'customerReview':[6,7,7],
'expertReview':[4,8,9]
}
所以,如果我有一個像找到的所有文件的要求,其具有分鐘(customer_review)> 5 - >只有第二份文件是正確的。
這裏的文件我最初點,這讓分(顧客審查):產生
db.getCollection('subscriber').aggregate([
{$unwind:"$customerReviews"},
{"$group":{
"_id":"$_id",
"min_customer_review":{"$min":"$customerReviews"}}}
]);
:
{
"_id" : ObjectId("58ab1d6892bf3194a9719883"),
"min_customer_review" : 5
},
{
"_id" : ObjectId("58ab1d6892bf3194a9719883"),
"min_customer_review" : 6
}
因此,如何繼續聚集輸出應用過濾器來獲取所有的文件,其有min_customer_review> 5?
還有一個問題,是否可以應用第二個聚合,如「獲取所有min_customer_review> 5或average_expert_reviews> 6的電影」?
謝謝ü所有
非常感謝替換值,所以如何在列表中,如「在租賃1專家評審> 8」的每一個元素執行條件。我嘗試:{$或:[{$ gt:[{$ min:「$ customerReviews」},5]},{expertReviews:{$ elemMatch:{$ gt:8}}}]}但它返回無法識別的表達式$ elemMatch - InvalidPipelineOperator。最後一個問題:所有這些查詢都可以使用BasicDbObject for Java來完成,對吧? – keduadoi
不客氣。所有操作都在java驅動程序中受支持。 '$ elemmatch'只能在'$ match'stage中使用。我不能想到聚合管道中的任何類似的操作員。 – Veeram