1
我在mongo中使用cmp聚合,并让它工作,但我认为我遇到的问题是一个错误。当我比较10(或更大)与8.3时,返回-1。当我比较9.5到8.3时,返回1。看起来好像我将十分之一或以上的数字与一个数字相比较,我得到一个-1。如果我比较一个人的工作正常。
下面是比较零件,结果
cmpPrice: {
$cmp: ['$amount', '$ticker.price_usd']
},
case "price":
if (doc.cmpPrice == -1 && doc.direction == "above") {
console.log("\t\tConditions Met, Price Above");
emailUser(doc);
} else if (doc.cmpPrice == 1 && doc.direction == "below") {
console.log("\t\tConditions Met, Price Below");
emailUser(doc);
} else {
console.log("\t\tFailed");
}
break;
结果
- ID: 59766722b006792254355adb
Amount 10
Ticker Price 7.79818
Conditions(price, above)
CMP(Volume: -1, Market Cap: -1, Price: -1)
Conditions Met, Price Above
- ID: 597659d5dd06792ea08037e9
Amount 100
Ticker Price 7.79818
Conditions(price, below)
CMP(Volume: -1, Market Cap: -1, Price: -1)
Failed
- ID: 5976624daccd002bdce2ec6a
Amount 9.5
Ticker Price 7.79818
Conditions(price, above)
CMP(Volume: 1, Market Cap: 1, Price: 1)
Failed
愚蠢的问题,但都是数量和价格类型数量? –
金额是一个字符串,并且数字是从API JSON中获取的,所以我也在猜测字符串 – rudster
您可以使Number类型的“金额”再试一次吗?并检查“Ticker Price”的类型?我认为类型之间可能存在问题。 –