0
我正在使用貓鼬來連接和查詢mongoDB。來自mongoDB的意外輸出
現在,如果我有以下代碼:
return new Promise((resolve) => {
mongoose.connection.db.collection('offer').aggregate([{
$match: {
$or: [
{
ccChecked: {
$lt: new Date(currentDay + 'T00:00:00.000Z')
}
},
{
ccChecked: {
$exists: 0
}
}
],
_id: { $in: offerObjIds }
}
},
{ $sample: { size: 2 } }
], (err, res) => {
console.log('res is', res);
resolve(res);
});
});
提供的結果是好的,我們得到預期的輸出。 但是,如果我們有以下查詢,並且我公司提供SAMPLE_SIZE爲2:
const sampleSize = process.env.SAMPLE_SIZE
return new Promise((resolve) => {
mongoose.connection.db.collection('offer').aggregate([{
$match: {
$or: [
{
ccChecked: {
$lt: new Date(currentDay + 'T00:00:00.000Z')
}
},
{
ccChecked: {
$exists: 0
}
}
],
_id: { $in: offerObjIds }
}
},
{ $sample: { size: sampleSize } }
], (err, res) => {
console.log('res is', res);
resolve(res);
});
});
在這種情況下,我得到的結果是不確定的。有人可以提供解釋爲什麼這樣的行爲以及如何通過process.env變量來解決這個問題。
如果我將它作爲「start-offer-service-dev」在npm腳本中傳遞:「SAMPLE_SIZE = 2 node_modules/.bin/babel-node src/services /offerService/index.js「,那麼它會是一個字符串還是數字? –
是的,我的錯誤,通過npm腳本傳遞的參數是字符串類型,因此必須轉換爲int –
查看我的更新:)很高興你知道了。乾杯。 – matt