0
mongooseを使用してmongoDBに接続して照会しています。mongoDBからのUnexpected出力
は、今私は、次のコードがある場合:
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);
});
});
提供結果は結構ですが、私たちは、予想される出力を取得します。 しかし、我々は次のクエリを持っている、と私は2としてSAMPLE_SIZEを提供する場合:この場合
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変数を通してこれを解決するかを説明することはできますか?
npmスクリプトで "start-offer-service-dev"として渡した場合: "SAMPLE_SIZE = 2 node_modules/.bin/babel-node src/services /offerService/index.js "、それは文字列か数値ですか? –
よろしく、私の間違いですが、npmスクリプトを通過する引数は文字列型なので、intに変換する必要があります –
私の更新を見てください:)あなたはそれを理解して嬉しいです。乾杯。 – matt