параметры: -
"access_token": "weZVy7pnlV6CtnSQ5w8ZO9iatr5/RZrxc8vc0R5G/kyIiBhfloQuwTIVPIxUupheKHdjhpCjL2g+PsfUPe79cA==",
"api_key": "T0BAnEzf6CaWwIMulImtA05nT6fDVjXKHoJM136S",
"search_key": "",
"latitude": 22.723755,
"longitude": 75.886752,
"maximum_distance": 5000,
"page": 1,
"limit": 5000
То, что я хочу: -
: ---- Мне нужны данные всей группы с расстоянием (основанным на долготе поиска), средней оценкой, rating_status, join_status.
: ---- SORT BY на расстоянии, и средняя оценка снижается.
: ---- Статус рейтинга пользователя (если пользователь уже получил свой рейтинг, то рейтинг_статуса будет да / нет),
: ---- статус присоединения к группе (если пользователь уже присоединился к группе, тогда join_status будет yes / no).
: ---- поиск по имени группы. (если ключ поиска доступен).
Таблица обзора и оценки Структура коллекции:
имя таблицы = обзор.
var reviewSchema = new Schema({
user_id : { type: String, required: true, default: "" },
room_id : { type: String, required: true, default: "" },
rating : { type: Number, min: 1, max: 5, require: true, default: "" },
comment: { type: String, require: true, default: "" },
created_at : { type: String, required: true, default: "" },
updated_at : { type: String, default: "" }
});
и таблица Содержимое данных этого типа: -
"data": [
{
"_id": "5e3a6f5439217717b0ed56de", // review table primary id
"user_id": "5e2ad43ec2a9ae09e8ccefb1"
"room_id": "5e3a5dc4cc182919340dc066", //room id or group id
"rating": 5,
"comment": "Good",
"created_at": "1580887892400",
"updated_at": "1580887892400",
"__v": 0,
},
{
"_id": "5e3ac1dffc459005689c8e25",
"user_id": "5e3a93d9034f591a9064195f"
"room_id": "5e3a5dc4cc182919340dc066",
"rating": 2,
"comment": "Good comment",
"created_at": "1580909023395",
"updated_at": "1580909023395",
"__v": 0,
}
]
и это структура таблицы помещения
var RoomSchema = new Schema({
name : {type: String, required: true, default: ""},
icon_url : {type: String, default: ""}, // group icon
created_by : {type: Object, required: true, default: ""}, // user id who created this group
users: [{
user_id : {type : Object, default: ""},
is_admin : {type : Boolean, default: false},
status: {type: String, default: "joined"},
join_at: {type: String, required: true},
display_name : {type: String, default: ""}
}],
invitations: [{ //new added
sender_id : {type : Object, default: ""},
receiver_id : {type : Object, default: ""}
}],
open_to_all : {type: Boolean, default:false},
created_at : {type: String, required: true},
updated_at : {type: String, required: true}, //new added
is_group : {type : Boolean, default : true},
history_enable : {type : Boolean, default : true},
invitation_blocked : {type : Boolean, default : true},
is_deleted : {type : Boolean, default: false},
group_address: {type: String, default: ""},
keyword : {type : String, required: true, default: ""}, //new added
location : {
type : {type : Object, default: "Point"},
coordinates : {type : Array, required: true, default: ""}
}});
и содержимое таблицы этого типа данных: -
{
"data": [
{
"_id": "5e3a5dc4cc182919340dc066", //Room id or group id
"created_at": "1580883396150",
"updated_at": "1580911250917",
"location": {
"type": "Point",
"coordinates": [
22.724515,
75.884
]
},
"keyword": "burhan",
"group_address": "Testss",
"is_deleted": false,
"invitation_blocked": true,
"history_enable": true,
"is_group": true,
"open_to_all": false,
"invitations": [],
"users": [
{
"join_at": "1580883396150",
"_id": "5e3a5dc4cc182919340dc067", //user id
"display_name": "Navlakha square 44",
"status": "joined",
"is_admin": true,
"user_id": "5e2ad43ec2a9ae09e8ccefb1"
},
{
"user_id": "5e3a93d9034f591a9064195f", //user id
"is_admin": false,
"status": "joined",
"display_name": "",
"_id": "5e3a9a8065746703c0d126b7",
"join_at": "1580905781807"
}
],
"created_by": [
{
"_id": "5e2ad43ec2a9ae09e8ccefb1",
"created_at": "1579865150137",
"last_login": "1579865150137",
"blocks": [],
"blocked": [],
"muted_room": [],
"blocked_room": [],
"categories": [],
"invitations": [],
"rooms": [
"5b27477e4b20cb8fab0d6b3a",
"5e3a5dc4cc182919340dc066",
"5e3a72b1c38a3819b89db2b7"
],
"is_blocked": false,
"is_login": true,
"online_status": true,
"socket_id": "",
"access_token": "weZVy7pnlV6CtnSQ5w8ZO9iatr5/RZrxc8vc0R5G/kyIiBhfloQuwTIVPIxUupheKHdjhpCjL2g+PsfUPe79cA==",
"notification_token": "",
"device_type": "Android",
"device_id": "",
"profile_image_url": "",
"about": "",
"phone": "123456789",
"last_name": "developer1",
"first_name": "php",
"__v": 0
}
],
"icon_url": "vkVajfRz_400x400.jpg",
"name": "Apt",
"__v": 0
}
]
}