cities.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. 'use strict';
  2. import mongoose from 'mongoose';
  3. const citySchema = new mongoose.Schema({
  4. id: Number,
  5. name: String,
  6. abbr: String,
  7. area_code: String,
  8. sort: Number,
  9. latitude: Number,
  10. longitude: Number,
  11. is_map: Boolean,
  12. pinyin: String,
  13. });
  14. citySchema.statics.cityGuess = function(name){
  15. return new Promise(async (resolve, reject) => {
  16. const firtWord = name.substr(0,1).toUpperCase();
  17. try{
  18. const city = await this.findOne();
  19. Object.entries(city._doc).forEach(item => {
  20. if(item[0] == firtWord){
  21. item[1].forEach(cityItem => {
  22. if (cityItem.pinyin == name) {
  23. resolve(cityItem)
  24. }
  25. })
  26. }
  27. })
  28. }catch(err){
  29. console.error(err);
  30. }
  31. })
  32. }
  33. citySchema.statics.cityHot = function (){
  34. return new Promise(async (resolve, reject) => {
  35. try{
  36. const city = await this.findOne();
  37. resolve(city._doc.hotCities)
  38. }catch(err){
  39. console.error(err);
  40. }
  41. })
  42. }
  43. citySchema.statics.cityGroup = function (){
  44. return new Promise(async (resolve, reject) => {
  45. try{
  46. const city = await this.findOne();
  47. let cityObj = city._doc;
  48. delete(cityObj._id)
  49. delete(cityObj.hotCities)
  50. resolve(cityObj)
  51. }catch(err){
  52. console.error(err);
  53. }
  54. })
  55. }
  56. const Cities = mongoose.model('Cities', citySchema);
  57. export default Cities