我的文檔MongoDB的集合與下面的「模式」:如何比較來自同一文檔的兩個字段在MongoDB中是否相等?
{
field1: value1,
field2: value2
}
我想運行在一個管道「$匹配」查詢檢查FIELD1和FIELD2值相等。
類似於「field1」==「field2」。
我該怎麼做?
謝謝你們!
我的文檔MongoDB的集合與下面的「模式」:如何比較來自同一文檔的兩個字段在MongoDB中是否相等?
{
field1: value1,
field2: value2
}
我想運行在一個管道「$匹配」查詢檢查FIELD1和FIELD2值相等。
類似於「field1」==「field2」。
我該怎麼做?
謝謝你們!
db.c.aggregate([{
$project : {
equal : {
$eq : ["$field1", "$field2"] // to judge like your : "valueof(field1) == valueof(field2)"
},
doc : "$$ROOT" // store the whole document, this is optional
}
}, {
$match : {
equal : true // filter to get documents only satisfy : "valueof(field1) == valueof(field2)"
}
}]);
@i驚慌的外星人,也許我認爲這就夠了。感謝提醒。 – Wizard 2014-10-27 15:17:23
謝謝!它的工作..但'doc:'$$ ROOT''是什麼意思? – 2014-10-28 17:51:45
@Efstathios Chatzikyriakidis:它代表了前一階段的當前文件。例如,如果您的集合中有一個文檔{_id:1,a:1,b:2},則doc:「$$ ROOT」將生成一個字段{doc:{_id:1,a:1, b:2}}。這是可選的,因爲我在代碼塊中評論,我做了它,因爲我不知道最後要投影哪些字段,所以我投影整個文檔。 – Wizard 2014-10-29 00:44:32