0
[
{
"_id": "59009087f8ed4e2ecc91fcbe",
"password": "test",
"email": "",
"username": "root",
"__v": 3,
"stats": [
{
"_id": "590090a0f8ed4e2ecc91fcbf",
"time": 98,
"scramble": "U2 F R U' R B' L' U L' B2 R2 B F' U2 R' B2 R2 D R2 U",
"type": "three",
"status": 0,
"date": "2017-04-26T12:20:48.622Z"
},
{
"_id": "590090adf8ed4e2ecc91fcc0",
"time": 120,
"scramble": "R2 U2 D' U' B D B L' U2 R2 F2 L2 R' F2 U F2 L2 D L2",
"type": "three",
"status": 0,
"date": "2017-04-26T12:21:01.318Z"
},
{
"_id": "590090da8f0e120320f36945",
"time": 191,
"scramble": "F2 B' L F R B' F B' D' F2 R2 B U' D' F U D B' F' D",
"type": "four",
"status": 0,
"date": "2017-04-26T12:21:46.679Z"
}
],
"accountDate": "2017-04-26T12:20:23.085Z"
}
]
私はユーザーのコレクションを持っています。ユーザーの1人が上記のコードに示されています。そのIDで1人のユーザーを選択したいと思います。その後、選択したユーザーから、タイプが「3」の統計配列のオブジェクトが必要になります。私はかなりの時間を探して、解決策を見つけられませんでした。私が使っている現在の方法はこれです:モデル内のクエリモデル
User.findOne({
_id: id
}, function (err, user) {
if(err){
console.log(err);
} else {
user.stats.forEach(function (time, i, array) {
if(time.type != req.body.type){
array.splice(i, 1);
}
});
res.send(user.stats);
}
});
問題は、統計の配列が大きくなりすぎますと、プロセスが非常に遅くなるということです。
私はそれを行いました。私のTTFBは約250msです。それはいいですか?ときには2秒にジャンプすることもあります。 – mrf1freak