let users = await client.db('aion').collection('user_posts').find({source:'twitter'}).toArray();
users = users.map(item => {
let ans = ((item.likes_count+item.comments_count+item.retweets_count)/item.follower*100)
let numbers = [ans];
numbers.sort(function (a, b) {
if (a < b)
return 1;
else if (a > b)
return -1;
else
return 0;
});
console.log("Sorted:", numbers);;
return {'uid':item.uid,ans}
})
await client.close();
res.status(200).json(users);
});
ต้องการให้เลขที่คำนวณออกมาเรียกลำดับจากมากไปน้อย เพื่อหา rank เขียนด้วยวิธีไหนได้บ้างคะ
- ถ้าวนลูปต้องใช้ for หรือป่าวคะ
Tag : JavaScript, Node.js, Web API, Cloud Database, Windows
// define an empty query document
const query = {};
// sort in descending (-1) order by length
const sort = { length: -1 };
const cursor = collection.find(query).sort(sort); // ใช้ sort method
await cursor.forEach(console.dir);
หรือ
2
//...
// query for movies that have a runtime less than 15 minutes
const query = { runtime: { $lt: 15 } };
const options = {
// sort returned documents in ascending order by title (A->Z)
sort: { title: 1 },
// Include only the `title` and `imdb` fields in each returned document
projection: { _id: 0, title: 1, imdb: 1 },
};
const cursor = movies.find(query, options); // ใช้พารามิเตอร์ options ของ find method
//...