2017-07-05 42 views
0

我的guestMin和guestMax都是字符串,我想將它們加在一起並將總和放入guestSum中。在guestSum如何將兩個字符串作爲數字一起添加到mongoDB中

$project:{ 
    "_id" : 1,         
    "name" : 1, 
    "guestsMin" : 1, 
    "guestsMax" : 1, 
    "guestSum" : parseInt("guestsMin") + parseInt("guestsMax"), 
    "gmapsdata" : 1 
} 

這並不表明在所有

$project:{ 
    "_id" : 1,         
    "name" : 1, 
    "guestsMin" : 1, 
    "guestsMax" : 1, 
    "guestSum" : { $add: [ parseInt("guestsMin"), parseInt("guestsMax") ] }, 
    "gmapsdata" : 1 
} 

這給 「guestSum」:

我試過這個空,

"guestSum" : { $add: [ parseInt("$guestsMin"), parseInt("$guestsMax") ] },    

這給 「guestSum」 :null,

"guestSum" : { $multiply: [ parseInt("$guestsMin"), parseInt("$guestsMax") ] }, 

這給 「guestSum」:空,

"guestSum" : { $multiply: [ parseInt("property.guestsMin"), parseInt("property.guestsMax") ] }, 

這給 「guestSum」:空,

進出口運行的想法,任何人嗎?

+2

似乎像y ou不能將字符串轉換爲聚合管道中的數字https://stackoverflow.com/questions/25983228/convert-a-string-to-a-number-in-mongodb-projection –

+0

@Sergey嗯,也許你是對的 - 但當我刪除parseInt時,它會抱怨乘法字符串。所以它看起來像parseInt部分工作正常。只是廢話,我必須在js做一個循環,將這兩個數字加在一起。 – torbenrudgaard

+2

這裏要做的正確的事情是修復所有文檔,以便這些字段使用數字值。否則,你會永遠戰鬥。 – JohnnyHK

回答

0

的解決方案是這樣的:

"guestSort" : { $multiply: [ "$guestsMin", "$guestsMax"] }, 

"property.guestsMin"沒有工作

"guestsMin"沒有工作

"$property.guestsMin"沒有工作

但... "$guestsMin"工作

相關問題