簡體   English   中英

如何根據在文檔中添加2個屬性的值來搜索文檔?

[英]How to search for documents based on the value of adding 2 properties on the document?

我有一份文件:

{"price1": 500, "price2": 500}

我想找到所有文件“(price1 + price 2)<1200”。 我假設我可以通過使用聚合框架來做到這一點,但沒有看到正確的方法。

你可以使用$ add來做到這一點。 請嘗試以下代碼:

db.collection.aggregate([
    { $project: { total: { $add: [ "$price1", "$price2" ] } } }, 
    { $match: {total: {$lt: 1200  }} }
])

另一種方法是使用$redact運算符返回“price1”和“price2”之和大於1200所有文檔。 當然,要得到你需要使用的總和$add operator.The $cond運算符計算並返回文檔如果表達式為true使用$$KEEP變量,並排除所有文件,只要該條件使用計算為false $$PRUNE變量。

db.collection.aggregate([ 
    { "$redact": { 
        "$cond": [ 
            { "$lt": [ 
                { "$add": [ "$price1", "$price2"] },
                1200
            ]},
            "$$KEEP",
            "$$PRUNE"
        ]
    }}
])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM