我目前正在嘗試比較兩個字串,它們是查找查詢中的數字。我需要使用字串,因為如果我這樣保存它們,這些數字會導致 Javascript 溢位。to 比較值來自 API 呼叫,該值位于陣列中:
const auction = await this.findOne({
$and: [{
$or: [
{ 'bids.amount': amount },
{ 'bids.signature': signature },
{ 'bids.amount': { $gte: amount } }
]
}, { 'tokenId': tokenId }, { 'isActive': true }]
});
我將如何更改查詢以將字串作為數字處理,因此我的比較實際上是正確的?
uj5u.com熱心網友回復:
波紋管查詢假設出價是一個陣列
bids=[{"amount" : "1224245" , "signature" : "234454523"} ...]
如果簽名不是數字,$toLong則從簽名中洗掉。
aggregate(
[{"$match":
{"$expr":
{"$and":
[{"$eq": ["$tokenId", "tokenId_VAR"]},
{"$eq": ["$isActive", true]},
{"$reduce":
{"input": "$bids",
"initialValue": false,
"in":
{"$or":
["$$value",
{"$gte": [{"$toLong": "$$this.amount"}, "amount_VAR"]},
{"$eq": [{"$toLong": "$$this.signature"}, "signature_VAR"]}]}}}]}}}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/335700.html
