0
我希望得到一個的MongoDB集合堅持這個條件的記錄:
FIELDA> fieldB + someNaturalValue。
這是我試過到目前爲止:蒙戈領域的大於磁場B加上一個值
db.getCollection('collection').find({
$where: function() {
return this.fieldA > this.fieldB + 10000}
});
// or
db.getCollection('collection').aggregate([
{ "$project" : {
"sum" : {"$add" : ["$fieldB", 10000]}
}
},
{ "$match" : {
"sum" : {"$lte" : "$fieldA"}
}
}
]);
我在這裏所面臨的問題是,我需要在條件添加到域的一個額外的價值。
那些不起作用,那個價值沒有被考慮。
我缺少什麼?我很感激任何幫助。
樣本數據
db.collection.insert({fieldA : 21000, fieldB : 10000}); //1 ok
db.collection.insert({fieldA : 15000, fieldB : 8000}); //2 nok
db.collection.insert({fieldA : 24000, fieldB : 22000}); //3 nok
db.collection.insert({fieldA : 22000, fieldB : 1000}); //4 ok
您可以粘貼一個小例子數據集在$,以'db.collection.insert'調用的形式,以便我們可以使用它? –
我已經測試了我自己的沙箱上的兩個查詢,並且他們都正常工作。即使fieldB是一個字符串值 –
大家好。感謝您的快速回復。從指出的可能重複的問題的答案確實有效,但它使用了另一個我很好的功能,但** **的替代方案呢?我也想使用這個,因爲對於聚合,我需要額外執行一個步驟來查看整個文檔,而不僅僅是id。 即便如此,我是否應該僅僅因爲重複而接受,比方說,它的一半已經解決了? – alexandrum