
Introduction
Lesan is a collection of a Web Server and an ODM along with an idea to implement microservices.
In this framework, we tried to delegate data retrieval management to the client, inspired by the idea of GraphQL, without adding an extra layer (such as GQL language processors) on the client and server side. In addition, we use all the capabilities of NoSQL databases so that we can embed all the relationships of a schema within itself without involving the server-side programmer in managing the creation, retrieval, updating, and deletion of duplicated embeddings.
Meanwhile, we should have a regular structure (such as SQL) for data models in the ODM layer so that we can always validate the data.
Also, we have provided a new definition for creating relationships between data, which makes us fully master its details and do wonderful things with them. Read more aboit it here
Furthermore, we tried to provide the possibility of being movable for the data structure along with the functions written on the server side so that we can manage microservices more easily.
Finally, this data structure (by the favor of fewer requests sent to the database) will also simplify the way SSG content is created.
In one sentence, Lesan may add a few to five hundred milliseconds to the creation, update, and deletion process, but it makes reading data fifteen to several hundred times faster.
Benchmarks
We use this formula to calculate the difference : (B - A) ÷ A * 100
As you see on the chart:
- Lesan returns data to client
1168%faster than theprisma-express-rest. Which usespostgresas a database. - Lesan returns data to client
1417%faster than theprisma-express-graphql. Which usespostgresas a database. - Lesan returns data to client
4435%faster than themongoose-express-rest(Note that we did not sort in this query) - Lesan returns data to client
72289%faster than themongo-express-rest(Note that we did not sort in this query) - Lesan returns data to client
298971%faster than themongoose-express-rest(used sortby)
Maybe we created the most performant framework in the world! see more detailed benchmark
This video is an introductory tutorial on Lesan framework in Farsi language
Installation
Currently, only the Deno version of Lesan's framework is ready and usable, Node and Bun versions will also be ready soon.
Pre request
- At least version 7 of MongoDB must be installed.
- The latest version of Deno must be installed.
- It is good to have NodeJS installed on your system.
- If you need to see database information, it is better to install MongoDB Compass.
- Using a suitable editor such as:
- VS Code please install deno extension
- Lesvim The configuration of this editor is a bit difficult.
- Helix The configuration of this editor is simple and the performance is excellent. Please add
.helix/languages.tomlfile to the root of project and insert this config for better support ofDeno.
Importing
After completing the prerequisites, create a file named mod.ts.
Now just use the latest version of Lesan along with MongoClient in this file.
import {
lesan,
MongoClient,
} from "https://deno.land/x/lesan@vx.x.x/mod.ts"; // Please replace `x.x.x` with the latest version in [releases](https://github.com/MiaadTeam/lesan/releases)
const coreApp = lesan();
const client = await new MongoClient("mongodb://127.0.0.1:27017/").connect();
const db = client.db("dbName"); // change dbName to the appropriate name for your project.
coreApp.odm.setDb(db);
coreApp.runServer({ port: 1366, typeGeneration: false, playground: true });
Please replace
x.x.xin the import link with the latest version in releases
Now run this command in the terminal:
deno run -A mod.ts
You should see this messsage:
HTTP webserver running.
please send a post request to http://localhost:1366/lesan
you can visit playground on http://localhost:1366/playground
Listening on http://localhost:1366/
Now you can visit the playground at http://localhost:1366/playground.
Because no database model and no function have been written yet, we still cannot send a request to the server.
Getting started
I copy this simple example from installation page. We will keep this file as mod.ts and continue to add various models and functions to it.
import { lesan, MongoClient } from "https://deno.land/x/lesan@vx.x.x/mod.ts"; // Please replace `x.x.x` with the latest version in [releases](https://github.com/MiaadTeam/lesan/releases)
const coreApp = lesan();
const client = await new MongoClient("mongodb://127.0.0.1:27017/").connect();
const db = client.db("dbName"); // change dbName to the appropriate name for your project.
coreApp.odm.setDb(db);
coreApp.runServer({ port: 1366, typeGeneration: false, playground: true });
Please replace
x.x.xin the import link with the latest version in releases
Add New Model
For adding a new model we should call newModel function from coreApp.odm. Lets add a country model, please add the following code before coreApp.runServer:
const countryPure = {
name: string(),
population: number(),
abb: string(),
};
const countryRelations = {};
const countries = coreApp.odm.newModel(
"country",
countryPure,
countryRelations
);
We also need to import
stringandnumberfrom lesan. These are validators exported from Superstruct. We use Superstruct to define models and validate function inputs and some other things.
The newModel function accepts three inputs:
- The first input is to define the name of the new model.
- The second input is to define the pure fields of that model in the database. For this, we use an object whose keys are the names of each of the fields, and the value of these keys is obtained by one of the functions exported from Superstruct.
- The third input is to define the relationship between models. Because we have just one model here, we pass an empty object for that. We will read more about this later.
Finally, the newModel function returns an object that has services such as insertOne, insertMany, updateOne, deleteOne, and so on.
Add an access point
Every model needs at least one act as an access point to communicate and send or receive data. For adding an act to countries please add the following code before coreApp.runServer:
const addCountryValidator = () => {
return object({
set: object(countryPure),
get: coreApp.schemas.selectStruct("country", 1),
});
};
const addCountry: ActFn = async (body) => {
const { name, population, abb } = body.details.set;
return await countries.insertOne({
doc: {
name,
population,
abb,
},
projection: body.details.get,
});
};
coreApp.acts.setAct({
schema: "country",
actName: "addCountry",
validator: addCountryValidator(),
fn: addCountry,
});
We need to import
objectfunctionActFntype fromlesan
The setAct function
As you can see, to add an act to country, we need to use the setAct function in coreApp.acts.
This function receives an object as input that has the following keys:
schemais the name of the model to which we want to set an action.actNameis just a simple string to identify the act.fnis the function we call when a request arrives for it.validatoris a superstruct object which is called before calling the act fn and validating the given data. Validator includessetandgetobjects.- An optional key named
validationRunTypethat receives the values ofassertandcreateand determines the type of validator run so that we can create data or change previous data during validation. You can read about it here. - There is another optional key called
preActwhich receives an array of functions. These functions are executed in the order of the array index before the execution of the main endpoint function. With these functions, we can store information in the context and use it in the main function, or not allow the main function to be executed. We mostly use this key forauthorizationandauthentication. You can think of that key as middleware in Express. - Like
preAct, there is another optional key calledpreValidation. which, likepreAct, receives an array of functions and executes them in order before executing the validation function.
There is a context inside Lesan, which is available by contextFns.getContextModel() function. And we can share information between the functions of an Act like preAct, preValidation, validator and fn through this context. By default, the body and header of each request are available in this context.
In addition, the fn function receives an input called body, which is the body of the sent request. If we have changed the body in the context. The body entered in fn function will be updated and changed.
The Validator function
In the addCountryValidator function that we wrote for the validator key, we have returned the object function from the Superstruct struct.
This object contains two key:
set: It is anobjectin which we define the required input information for each function available on the client side. In the desired function, we can get thesetobject information from this address.body.details.set. Note that this object must be of Superstructobjectfunction type.get: This key is also a Superstructobject, where we specify what data can be sent to the client. This object is used in such a way that the client can specify what data he needs with values of0or1for eachkey. Actually, this object can be like this:
But as you can see, we have usedget: object({ name: enums([0, 1]), population: enums([0, 1]), abb: enums([0, 1]), });selectStructfunction ofcoreApp.schemas.selectStruct. This function has two inputs. The first input is thenameof the model for which we want to generate this object, and the second input specifies the degree of penetration into eachrelationship. The second input of theselectStructfunction can be entered as anumberor anobject. If entered as an object, the keys of this object must be thenamesof the selected model relationships, and its value can again be anumberor anobjectof its key relationships. Such as:
As a result, an object will be produced as follows:get: coreApp.schemas.selectStruct("country", { provinces: { cities: 1 }, createdBy: 2, users:{ posts: 1 } }),
We directly send the data received from the get key as a projection to MongoDB.get: object({ name: enums([0, 1]), population: enums([0, 1]), abb: enums([0, 1]), provinces: object({ name: enums([0, 1]), population: enums([0, 1]), abb: enums([0, 1]), cities: object({ name: enums([0, 1]), population: enums([0, 1]), abb: enums([0, 1]), }), }), createdBy: object({ name: enums([0, 1]), family: enums([0, 1]), email: enums([0, 1]), livedCity: object({ name: enums([0, 1]), population: enums([0, 1]), abb: enums([0, 1]), province: object({ name: enums([0, 1]), population: enums([0, 1]), abb: enums([0, 1]), }), }), posts: object({ title: enums([0, 1]), description: enums([0, 1]), photo: enums([0, 1]), auther: object({ name: enums([0, 1]), family: enums([0, 1]), email: enums([0, 1]), }), }), }), users: object({ name: enums([0, 1]), family: enums([0, 1]), email: enums([0, 1]), post: object({ title: enums([0, 1]), description: enums([0, 1]), photo: enums([0, 1]), }), }), });
The fn function
The fn key receives the main act function, we write this function for that:
const addCountry: ActFn = async (body) => {
const { name, population, abb } = body.details.set;
return await countries.insertOne({
doc: {
name,
population,
abb,
},
projection: body.details.get,
});
};
This function receives an input called body, the body of the request sent from the client side is passed to it when this function is called, as a result, we have access to the information sent by users.
The request body sent from the client side should be a JSON like this:
{
"service": "main",
"model": "country",
"act": "addCountry",
"details": {
"set": {
"name": "Iran",
"population": 85000000,
"abb": "IR"
},
"get": {
"_id": 1,
"name": 1,
"population": 1,
"abb": 1
}
}
}
- The
servicekey is used to select one of themicroservicesset on the application. You can read more about this here. - The
modelkey is used to select one of theModelsadded to the application. - The
actkey is used to select one of theActsadded to the application. - The
detailskey is used to receive data to be sent from the client side along with data to be delivered to users. This key has two internal keys calledgetandset, we talked a little about it before.set: It contains the information we need in theActfunction. For this reason, we can extractname,population, andabbfrom withinbody.details.set.get: Contains selected information that the user needs to be returned. Therefore, we can pass this object directly to Mongoprojection.
As you can see, we have used the insertOne function, which was exported from the countries model, to add a new document. This function accepts an object as input, which has the following keys:
{
doc: OptionalUnlessRequiredId<InferPureFieldsType>;
relations?: TInsertRelations<TR>;
options?: InsertOptions;
projection?: Projection;
}
- The
dockey receives an object of the pure values of the selected model.OptionalUnlessRequiredIdtype is thedocumenttype in the official MongoDB driver. You can read about it here. - The
relationskey receives an object from the relations of this model. There is no relationship here. We will read about this in the next section. - The
optionskey gets the official MongoDB driver options to insertOne. You can read more about this here - The
projectionkey is used to receive written data. We use native projection in MangoDB. You can read MongoDB's own documentation here. IninsertOne, you can only penetrate one step in relationships. Here you can get only pure fields because there is no relation. We will read more about this later.
The code
So this is all the code we've written so far (You can also see and download this code from here):
import {
ActFn,
lesan,
MongoClient,
number,
object,
string,
} from "https://deno.land/x/lesan@vx.x.x/mod.ts"; // Please replace `x.x.x` with the latest version in [releases](https://github.com/MiaadTeam/lesan/releases)
const coreApp = lesan();
const client = await new MongoClient("mongodb://127.0.0.1:27017/").connect();
const db = client.db("dbName"); // change dbName to the appropriate name for your project.
coreApp.odm.setDb(db);
const countryPure = {
name: string(),
population: number(),
abb: string(),
};
const countryRelations = {};
const countries = coreApp.odm.newModel(
"country",
countryPure,
countryRelations
);
const addCountryValidator = () => {
return object({
set: object(countryPure),
get: coreApp.schemas.selectStruct("country", { users: 1 }),
});
};
const addCountry: ActFn = async (body) => {
const { name, population, abb } = body.details.set;
return await countries.insertOne({
doc: {
name,
population,
abb,
},
projection: body.details.get,
});
};
coreApp.acts.setAct({
schema: "country",
actName: "addCountry",
validator: addCountryValidator(),
fn: addCountry,
});
coreApp.runServer({ port: 1366, typeGeneration: false, playground: true });
Please replace
x.x.xin the import link with the latest version in releases
Run Server function
The last thing we want to talk about is the coreApp.runServer function, this function receives an object input that has the following keys:
portused to specify the port used to run the server.polygroundthat receives aBooleanvalue that specifies whether the Polyground is available athttp://{server-address}:{port}/playgroundaddress.typeGeneration, which receives aBooleanvalue and creates a folder nameddeclarations, and inside it, the typefaces of the program are generated to be used in various cases, we will read more about this later.staticPaththat receives anarrayof paths as astringand makes the content inside these paths statically serveable. We will read more about this later.corswhich receives either the*value or anarrayof URLs as astring, and makes these addresses have the ability to communicate with the server and not receive thecorserror.
Running App
Now you can run
deno run -A mod.tsfor running the Application with deno
You can use playground:
Or postman:
To send a post request to http://localhost:1366/lesan with this request body:
{
"service": "main",
"model": "country",
"act": "addCountry",
"details": {
"set": {
"name": "Iran",
"population": 85000000,
"abb": "IR"
},
"get": {
"_id": 1,
"name": 1,
"population": 1,
"abb": 1
}
}
}
For inserting a new country.
You shuold get this result:
{
"body": {
"_id": "6534d7c6c5dec0be8e7bf751",
"name": "Iran",
"population": 85000000,
"abb": "IR"
},
"success": true
}
Add E2E Test
For adding addCountry request to E2E section you should click on the E2E button, like below picture.
Then, when you go to the E2E section, you can see 2 sequense that first one is the default sequence that you should delete that. so, you have one sequence that include your request information(like bottom picture).
Add relation
As we said before, we embed all relationships. So when you define a relation we store the pure fields of both models in each other.
So far we have defined only one model, let us add the second model.
We add the following code to the previous codes to add a new model called city.
const cityPure = {
name: string(),
population: number(),
abb: string(),
};
const cityRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
},
},
};
const cities = coreApp.odm.newModel("city", cityPure, cityRelations);
We talked about newModel and its input here.
Now we only talk about the third input, the relation definition. which receives an object with string key which is the feild name and we store the relation data by this name inside each document, and TRelation value (relations: Record<string, TRelation>;) which gave us some metadata about the relation. The TRelation type is as follows:
export type RelationDataType = "single" | "multiple";
export type RelationSortOrderType = "asc" | "desc";
export type TRelatedRelation = {
type: RelationDataType;
limit?: null | number;
sort?: {
field: string;
order: RelationSortOrderType;
};
};
interface TRelation {
schemaName: string;
type: RelationDataType;
optional: boolean;
sort?: {
field: string;
order: RelationSortOrderType;
};
relatedRelations: {
[key: string]: TRelatedRelation;
};
}
- The
schemaNamekey receives the exact name of anotherschemato establish a relation. - The
typekey specifies whether the relationship type should besingleormultiple. - The
optionalkey specifies whether or not it is mandatory to enter information about this relationship when importing a new document. - The
sortkey is optional and specifies that if the relationship type ismultiple, based on whichfieldof the relationship schema, the information should be arranged. This key receives an object with two keys:- The
fieldthat receives the name of one of the schema fields in the relation. - An
orderthat receives the value ofascanddescand specifies whether the arrangement should be from bottom to top or vice versa.
- The
relatedRelationskey that specifies the effects of this schema on the other side of the relationship. This key receives the value of the object with the following keys:- The
typekey specifies whether the relationship type should besingleormultiple. limitwhich specifies the number of relations to be kept if the relationtypeismultiple.- The
sortkey is optional and specifies that if the relationship type ismultiple, based on whichfieldof the relationship schema, the information should be arranged. This key receives an object with two keys:- The
fieldthat receives the name of one of the schema fields in the relation. - An
orderthat receives the value ofascanddescand specifies whether the arrangement should be from bottom to top or vice versa.
- The
- The
Add new Act with relation
Let us define an Act for this new model. We add the following code for this purpose:
const addCityValidator = () => {
return object({
set: object({
...cityPure,
country: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("city", 1),
});
};
const addCity: ActFn = async (body) => {
const { country, name, population, abb } = body.details.set;
return await cities.insertOne({
doc: { name, population, abb },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
cities: true,
},
},
},
});
};
coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
});
We need to import
objectIdValidationandObjectIdfromlesan
We see Validator and Act and setAct and insertOne functions before, Here we are only talking about the relations input in the insert function. The type of this input is as follow:
export type TInsertRelations<T extends IRelationsFileds> = {
[mainKey in keyof T]?: {
_ids: ObjectId | ObjectId[];
relatedRelations?: {
[key in keyof T[mainKey]["relatedRelations"]]: boolean;
};
};
};
This input receives an object with the key name of the relations that we have previously defined in the model. This object has the following keys:
idswhich receives either anObjectIdor an array ofObjectIds.relatedRelations, which receives an object with the key of the name of the related relations that we have previously defined in the model along with abooleanvalue. If the value istrue, in addition to the given relationship being saved in this new document, this created document is also saved in the related relationship. And if it isfalse, the relationship will be saved only in this new document.
Here, by adding a city and giving the country ID associated with that city, we store both the pure fields of that country in this newly created city, and within that country in an array of objects, we also store the pure fields of this city.
All codes
Let's see all the code written here and run it. (You can also see and download this code from here)
import {
ActFn,
lesan,
MongoClient,
number,
object,
ObjectId,
objectIdValidation,
RelationDataType,
RelationSortOrderType,
string,
} from "https://deno.land/x/lesan@vx.x.x/mod.ts"; // Please replace `x.x.x` with the latest version in [releases](https://github.com/MiaadTeam/lesan/releases)
const coreApp = lesan();
const client = await new MongoClient("mongodb://127.0.0.1:27017/").connect();
const db = client.db("dbName"); // change dbName to the appropriate name for your project.
coreApp.odm.setDb(db);
const countryCityPure = {
name: string(),
population: number(),
abb: string(),
};
const countryRelations = {};
const countries = coreApp.odm.newModel(
"country",
countryCityPure,
countryRelations
);
const cityRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
},
},
};
const cities = coreApp.odm.newModel("city", countryCityPure, cityRelations);
const addCountryValidator = () => {
return object({
set: object(countryCityPure),
get: coreApp.schemas.selectStruct("country", 1),
});
};
const addCountry: ActFn = async (body) => {
const { name, population, abb } = body.details.set;
return await countries.insertOne({
doc: {
name,
population,
abb,
},
projection: body.details.get,
});
};
coreApp.acts.setAct({
schema: "country",
actName: "addCountry",
validator: addCountryValidator(),
fn: addCountry,
});
const addCityValidator = () => {
return object({
set: object({
...countryCityPure,
country: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("city", 1),
});
};
const addCity: ActFn = async (body) => {
const { country, name, population, abb } = body.details.set;
return await cities.insertOne({
doc: { name, population, abb },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
cities: true,
},
},
},
});
};
coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
});
coreApp.runServer({ port: 1366, typeGeneration: true, playground: true });
Now, by running this code and going to playgroun, you should see this page to add the country:
And to add a new city, you should see this page:
What exactly happened to the database? If you open MongoDB Compass, the following data should be stored for the country:
And the following data should be stored for the city:
As you can see, when you add a city, the pure values are stored as embedded on both sides of the relation. This makes receiving data much faster.
The only noteworthy point is that a limited number of cities are stored in the country. Try to save as many as you think you will need in the first paginate. To get the rest of the cities, we will also query their own schema.
Add E2E Test
Like before, you can click on the E2E button (like bottom picture) to add your request to E2E section.
Then, when you go to the E2E section, you can see 2 sequense that first one is addCountry from getting start page and second one, is addCity request.
In the first sequence, you can click on Add Capture button to show you two input to set variable and value:
Then, you should fill the inputs like bottom picture:
Finaly, In the second sequence, add city, you should delete the country id :
And put the variable name that you set in the capture in the addCountry sequence, in my example, {IranId}.
Add more relation
So far we have created two models and one relationship. Let us create another relationship for these two models.
Just add this object to relatedRelations of city:
citiesByPopulation: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "population",
order: "desc" as RelationSortOrderType,
},
}
With this relationship, we plan to store the 50 most populated cities of each country in an embedded form.
Now the cityRelations object should look like this:
const cityRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
citiesByPopulation: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "population",
order: "desc" as RelationSortOrderType,
},
},
},
},
};
And we also need to change the function we wrote to add cities:
const addCity: ActFn = async (body) => {
const { country, name, population, abb } = body.details.set;
return await cities.insertOne({
doc: { name, population, abb },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
cities: true,
citiesByPopulation: true,
},
},
},
});
};
We just add this line of code:
citiesByPopulation: true,
Let us add other relationships before testing this code.
Add arbitrary relation
Let's choose a city as the capital for the countries. For this purpose we must have a single relatedRelation for each country selectively. So we add this code:
capital: {
type: "single" as RelationDataType,
},
And we change the function and validation we wrote to add the city as follows:
const addCityValidator = () => {
return object({
set: object({
...countryCityPure,
country: objectIdValidation,
isCapital: boolean(),
}),
get: coreApp.schemas.selectStruct("city", 1),
});
};
const addCity: ActFn = async (body) => {
const { country, name, population, abb, isCapital } = body.details.set;
return await cities.insertOne({
doc: { name, population, abb },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
cities: true,
citiesByPopulation: true,
capital: isCapital,
},
},
},
});
};
We just add isCapital: boolean(), to addCityValidator and add capital: isCapital to the insertOne functions.
Run the code
All the code we have written so far is as follows (You can also see and download this code from here):
import {
ActFn,
boolean,
lesan,
MongoClient,
number,
object,
ObjectId,
objectIdValidation,
RelationDataType,
RelationSortOrderType,
string,
} from "https://deno.land/x/lesan@vx.x.x/mod.ts"; // Please replace `x.x.x` with the latest version in [releases](https://github.com/MiaadTeam/lesan/releases)
const coreApp = lesan();
const client = await new MongoClient("mongodb://127.0.0.1:27017/").connect();
const db = client.db("dbName"); // change dbName to the appropriate name for your project.
coreApp.odm.setDb(db);
const countryCityPure = {
name: string(),
population: number(),
abb: string(),
};
const countryRelations = {};
const countries = coreApp.odm.newModel(
"country",
countryCityPure,
countryRelations
);
const cityRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
citiesByPopulation: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "population",
order: "desc" as RelationSortOrderType,
},
},
capital: {
type: "single" as RelationDataType,
},
},
},
};
const cities = coreApp.odm.newModel("city", countryCityPure, cityRelations);
const addCountryValidator = () => {
return object({
set: object(countryCityPure),
get: coreApp.schemas.selectStruct("country", 1),
});
};
const addCountry: ActFn = async (body) => {
const { name, population, abb } = body.details.set;
return await countries.insertOne({
doc: {
name,
population,
abb,
},
projection: body.details.get,
});
};
coreApp.acts.setAct({
schema: "country",
actName: "addCountry",
validator: addCountryValidator(),
fn: addCountry,
});
const addCityValidator = () => {
return object({
set: object({
...countryCityPure,
country: objectIdValidation,
isCapital: boolean(),
}),
get: coreApp.schemas.selectStruct("city", 1),
});
};
const addCity: ActFn = async (body) => {
const { country, name, population, abb, isCapital } = body.details.set;
return await cities.insertOne({
doc: { name, population, abb },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
cities: true,
citiesByPopulation: true,
capital: isCapital,
},
},
},
});
};
coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
});
coreApp.runServer({ port: 1366, typeGeneration: true, playground: true });
If you run the code and go to the playground, you will see that a new input called isCapital has been added to add the city,
and if we put the value true in it, this city will be added to the country as the new capital.
In addition, we have a field called citiesByPopulation in the country, where the 50 most populated cities of the country are stored.
Please note that you only send a request for a new city, and the new city is stored in three different fields with different conditions in the schema of the corresponding country.
Add E2E Test
In following to adding requests to the E2E test section, For adding addCity request to E2E section you should click on the E2E button, like below picture.
Like before, you should change the country id of the addCity request. In the addCity sequence, you should delete the country id :
And put the variable name that you set in the capture in addCountry sequence , in my example, {IranId}.
Add many-to-many relationship
Let us add a new model named user for this purpose. We add the following code for the user model:
const userPure = {
name: string(),
age: number(),
};
const users = coreApp.odm.newModel("user", userPure, {
livedCities: {
optional: false,
schemaName: "city",
type: "multiple",
sort: {
field: "_id",
order: "desc",
},
relatedRelations: {
users: {
type: "multiple",
limit: 50,
sort: {
field: "_id",
order: "desc",
},
},
},
},
country: {
optional: false,
schemaName: "country",
type: "single",
relatedRelations: {
users: {
type: "multiple",
limit: 50,
sort: {
field: "_id",
order: "desc",
},
},
},
},
});
Well, in the code above, we have created a new model called user, which has two pure fields with name and age keys. In addition, it has a relationship with the country and the city. Its relationship with the country is single and there is a relatedRelation with the country with a field called users. But its relationship with the city is multiple by the livedCities key, and there is also a relatedRelation with the city with a field called users, which is also multiple. Therefore, the relationship between the city and the user is many-to-many.
The function we want to add a user is as follows:
const addUserValidator = () => {
return object({
set: object({
...userPure,
country: objectIdValidation,
livedCities: array(objectIdValidation),
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const addUser: ActFn = async (body) => {
const { country, livedCities, name, age } = body.details.set;
const obIdLivedCities = livedCities.map((lc: string) => new ObjectId(lc));
return await users.insertOne({
doc: { name, age },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
users: true,
},
},
livedCities: {
_ids: obIdLivedCities,
relatedRelations: {
users: true,
},
},
},
});
};
coreApp.acts.setAct({
schema: "user",
actName: "addUser",
validator: addUserValidator(),
fn: addUser,
});
We need to import
arrayfunction fromlesan
The only thing worth mentioning in the code above is the livedCities input in validation, which receives an array of IDs as a string. In the Act function, we convert this input into an array of object IDs with a map. Note that the _ids key in the livedCities object receives an array of object IDs.
Well, let's see the complete code again, run the software and check the outputs.
All codes
You can see and download this code from here
import {
ActFn,
array,
boolean,
lesan,
MongoClient,
number,
object,
ObjectId,
objectIdValidation,
RelationDataType,
RelationSortOrderType,
string,
} from "https://deno.land/x/lesan@vx.x.x/mod.ts"; // Please replace `x.x.x` with the latest version in [releases](https://github.com/MiaadTeam/lesan/releases)
const coreApp = lesan();
const client = await new MongoClient("mongodb://127.0.0.1:27017/").connect();
const db = client.db("dbName"); // change dbName to the appropriate name for your project.
coreApp.odm.setDb(db);
const countryCityPure = {
name: string(),
population: number(),
abb: string(),
};
const countryRelations = {};
const countries = coreApp.odm.newModel(
"country",
countryCityPure,
countryRelations
);
const cityRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
citiesByPopulation: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "population",
order: "desc" as RelationSortOrderType,
},
},
capital: {
type: "single" as RelationDataType,
},
},
},
};
const cities = coreApp.odm.newModel("city", countryCityPure, cityRelations);
const userPure = {
name: string(),
age: number(),
};
const users = coreApp.odm.newModel("user", userPure, {
livedCities: {
optional: false,
schemaName: "city",
type: "multiple",
sort: {
field: "_id",
order: "desc",
},
relatedRelations: {
users: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "desc",
},
},
},
},
country: {
optional: false,
schemaName: "country",
type: "single",
relatedRelations: {
users: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "desc",
},
},
},
},
});
const addCountryValidator = () => {
return object({
set: object(countryCityPure),
get: coreApp.schemas.selectStruct("country", 1),
});
};
const addCountry: ActFn = async (body) => {
const { name, population, abb } = body.details.set;
return await countries.insertOne({
doc: {
name,
population,
abb,
},
projection: body.details.get,
});
};
coreApp.acts.setAct({
schema: "country",
actName: "addCountry",
validator: addCountryValidator(),
fn: addCountry,
});
const addCityValidator = () => {
return object({
set: object({
...countryCityPure,
country: objectIdValidation,
isCapital: boolean(),
}),
get: coreApp.schemas.selectStruct("city", 1),
});
};
const addCity: ActFn = async (body) => {
const { country, name, population, abb, isCapital } = body.details.set;
return await cities.insertOne({
doc: { name, population, abb },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
cities: true,
citiesByPopulation: true,
capital: isCapital,
},
},
},
});
};
coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
});
const addUserValidator = () => {
return object({
set: object({
...userPure,
country: objectIdValidation,
livedCities: array(objectIdValidation),
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const addUser: ActFn = async (body) => {
const { country, livedCities, name, age } = body.details.set;
const obIdLivedCities = livedCities.map((lc: string) => new ObjectId(lc));
return await users.insertOne({
doc: { name, age },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
users: true,
},
},
livedCities: {
_ids: obIdLivedCities,
relatedRelations: {
users: true,
},
},
},
});
};
coreApp.acts.setAct({
schema: "user",
actName: "addUser",
validator: addUserValidator(),
fn: addUser,
});
coreApp.runServer({ port: 1366, typeGeneration: true, playground: true });
Open Playground in the browser and go to addUser function.
Note that the livedCities field receives an array of IDs, you just need to enter an input like ["65466c407123faa9c1f3c180", "65466c2c7123faa9c1f3c17e"]. playground parses it and converts it into an array suitable for sending.
Add E2E Test
Probably you know what to do! For adding addUser request to E2E section you should click on the E2E button, like below picture.
And like before, you should change the country id and this time, change the city id. Of course that first you should add capture to addCity sequences.
In my example, i add the Hamedan city and Tehran city to my user. so , in the addCity sequence of Hamedan, i click on the Add Capture button and fill the inputs like below picture.
And in the addCity sequence of Tehran, i click on the Add Capture button and fill the inputs like below picture.
Then, in the addUser sequence, you can see the curent country id and also lived cities id like below picture.
Only thing you do is just to replace the country id and lived cities id with country id and cities id that you set in the capture sequences. in my example, country id is {IranId} and also my first city id is {HamedanId} and second one is {TehranId}. like below picture.
And last thing you should done is that add capture to addUser sequence for using in feature. i click on the Add Captue button and fill the inputs like below picture.
Mannage relations
So far we have created 3 models that have different relationships.
Can we update these relationships?
Yes we can, but only with addRelation and removeRelation functions.
We should note that we should never manually update the relationships created by Lesan with the update or updateMany function. Let the management of the relationships be entirely in Lesan's hands, so that it can always keep them updated and correct.
Let's use addRelation.
addRelation function
Update Many to Many Relation
Pay attention to the following code:
const addUserLivedCityValidator = () => {
return object({
set: object({
_id: objectIdValidation,
livedCities: array(objectIdValidation),
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const addUserLivedCity: ActFn = async (body) => {
const { livedCities, _id } = body.details.set;
const obIdLivedCities = livedCities.map((lc: string) => new ObjectId(lc));
return await users.addRelation({
filters: { _id: new ObjectId(_id) },
projection: body.details.get,
relations: {
livedCities: {
_ids: obIdLivedCities,
relatedRelations: {
users: true,
},
},
},
});
};
coreApp.acts.setAct({
schema: "user",
actName: "addUserLivedCities",
validator: addUserLivedCityValidator(),
fn: addUserLivedCity,
});
In addition to the functions insert, update, delete, find, etc., for each model in the Lesan, there are two other functions in addition to MongoDB functions, named addRelation and removeRelation, which are prepared for managing relationships. In the code above, the addRelation function is used. This function receives an object input with the following keys:
- A
filterkey that receives MongoDB findOne filter and finds only one document to change its relationships. - The
relationskey receives an object from the relations of this model. We talk about the relation input here - The
projectionkey is used to receive written data. Also we talk aboutprojectionkey here - And another key called
replace, which is not used here, and receives a boolean value offalseortrue. We will talk about this key in the next step.
In the function above, we add one or more cities to the set of cities where a user has lived. In fact, in the validation function, the user ID is received along with an array of city IDs, and in the Act function, we convert the array of city IDs into an array of object IDs and give it to the addRelation function along with the user ID. As a result, on the user side, one or more cities are added to the livedCities array, and on the city side, this user is added to each of the cities whose IDs have been sent.
Run the code
Since all the code is getting bigger and bigger, we put it on GitHub, you can see and download it here.
By running the codes and going to the playground, you can see and test the functions added to the user.
before execute main → country → addUserLivedCities:
executing
main → country → addUserLivedCities:
after execute
main → country → addUserLivedCities:
Add E2E Test
For adding addUserLivedCities request to E2E test section, you should click on the E2E button, like bottom picture.
Then, you should click on the Add Capture button in the addCity sequence and fill the inputs like below picture. in my example i add Mashhad city.
After that, you should change the default user id add lived cities id with capture that you set in the past. the default id is like below picture.
And replace the capture you set in the past like below picture.
Update One to Many Relation
What if in one of these sides our field is an object instead of an array (In fact, the type of relationship is one-to-many or many-to-one.)? For example, let's change the country on the user side.
Look at code below:
const addUserCountryValidator = () => {
return object({
set: object({
_id: objectIdValidation,
country: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const addUserCountry: ActFn = async (body) => {
const { country, _id } = body.details.set;
return await users.addRelation({
_id: new ObjectId(_id),
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
users: true,
},
},
},
replace: true,
});
};
coreApp.acts.setAct({
schema: "user",
actName: "addUserCountry",
validator: addUserCountryValidator(),
fn: addUserCountry,
});
In the code above, we get the ID of a user along with the ID of a country and give it to the addRelation function. Please note that the country is not optional in the user model and is defined with a single type. Therefore, if we change the country of a user, we must first find and delete this user in the country he was in before, then add the new country to the user and the user to the new country. For this reason, we have given the value true to the replace key in the addRelation entry. In this function, if we set replace equal to false or do not enter it, no operation will be performed and we will get an error.
Steps to add a country to a user
The bottom line is a bit complicated but has its own charm.
To change the country in a user, we must do the following steps:
- Find the user
- Finding the user's old country
- Find the user's new country
- Checking whether this user was part of the list of users in the old country or not (users may exist in several fields in one country, for example, the list of users who are the oldest or the youngest).
- Creating a
commandto delete the user from the old country (from all the lists in which the user was found). - If this list has a certain limit and we have reached the end of this limit, we need to find the next user to be added to this list. For this purpose, we must do the following steps:
- Find out how to save this list.
- Finding the next 3 users who can be added to this list (because it is possible to find either the same user that we intend to delete from the list, or the end user of this list).
- Creating an
commandto add these 3 users to the end of this list. - Creating a
commandto unify this list. - Creating a
commandto delete the current user from this list. - Creating a sorting
commandfor this list according to the method we mentioned in the initial settings of relationships. - Creating an
commandto limit this list to the number that we said in the initial settings of relationships.
- Creating an
commandto add this user to all user lists in the new country. (Here we also have to check if this list has limit or not and if so, this user can be added to this list or not, which we have to do step #6 for each list in the new country). - Execution of all the
commandswe have created so far. - Execution of the
commandto insert the new country instead of the old country in this user.
Run the code
Since all the code is getting bigger and bigger, we put it on GitHub, you can see and download it here.
By running the codes and going to the playground, you can see and test the functions added to the user.
before execute main → country → addUserCountry:
executing
main → country → addUserCountry:
before execute
main → country → addUserCountry:
Add E2E Test
For adding addUserCountry request to E2E test section, you should click on the E2E button, like bottom picture.
Then, in the E2E section and addUserCountry sequence you should replace the user id and country id that you set capture in own sequence with default user id and country id. default user and country id is like below picture.
The replaced user and country id is like below picture.
removeRelation function
Update Many to Many Relation
Pay attention to the following code:
const removeLivedCitiesValidator = () => {
return object({
set: object({
_id: objectIdValidation,
livedCities: array(objectIdValidation),
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const removeLivedCities: ActFn = async (body) => {
const { livedCities, _id } = body.details.set;
const obIdLivedCities = livedCities.map((lc: string) => new ObjectId(lc));
return await users.removeRelation({
filters: { _id: new ObjectId(_id) },
projection: body.details.get,
relations: {
livedCities: {
_ids: obIdLivedCities,
relatedRelations: {
users: true,
},
},
},
});
};
coreApp.acts.setAct({
schema: "user",
actName: "removeLivedCities",
validator: removeLivedCitiesValidator(),
fn: removeLivedCities,
});
In the code above, the removeRelation function is used. This function receives an object input with the following keys:
- A
filterkey that receives MongoDB findOne filter and finds only one document to change its relationships. - The
relationskey receives an object from the relations of this model. We talk about the relation input here - The
projectionkey is used to receive written data. Also we talk aboutprojectionkey here
In the function above, we remove one or more cities to the set of cities where a user has lived. In fact, in the validation function, the user ID is received along with an array of city IDs, and in the Act function, we convert the array of city IDs into an array of object IDs and give it to the removeRelation function along with the user ID. As a result, on the user side, one or more cities are removed from the livedCities array, and on the city side, this user is removed from each of the cities whose IDs have been sent. (To know the steps to do this and understand how the relatedRelations are managed, please read this section, just note that we do not have a document to add here, and we only do the steps to remove and place the next document in the limited lists.)
Run the code
Since all the code is getting bigger and bigger, we put it on GitHub, you can see and download it here.
By running the codes and going to the playground, you can see and test the functions added to the user.
before execute main → user → removeLivedCities:
executing
main → user → removeLivedCities:
after execute
main → user → removeLivedCities:
Add E2E Test
For adding removeLivedCities request to E2E section you should click on the E2E button, like below picture.
Then, in the E2E section and removeLivedCities sequence, you should replace the user id and cities id that you set capture in own sequence with default user id and cities id. default user id and cities id in livedCities is like below picture.
The replaced user and cities id is like below picture.
Update One to Many Relation
If you have created a single type relationship, and if you set the optional equivalent to false, we can not use removeRelation for that please use the addRelation function to replace it (for example we can not use removeRelation to remove country from a user).
But if you set the optional equal to true, we can use the removeRelation function to erase that relationship along with its relatedrelations.
Let's make an optional one-to-many relationship. We create a new relationship for the user:
mostLovedCity: {
optional: true,
schemaName: "city",
type: "single",
relatedRelations: {
lovedByUser: {
type: "multiple",
limit: 3,
sort: {
field: "_id",
order: "desc",
},
},
},
},
So the full form of users will be:
const users = coreApp.odm.newModel("user", userPure, {
livedCities: {
optional: false,
schemaName: "city",
type: "multiple",
sort: {
field: "_id",
order: "desc",
},
relatedRelations: {
users: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "desc",
},
},
},
},
mostLovedCity: {
optional: true,
schemaName: "city",
type: "single",
relatedRelations: {
lovedByUser: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "desc",
},
},
},
},
country: {
optional: false,
schemaName: "country",
type: "single",
relatedRelations: {
users: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "desc",
},
},
},
},
});
In this relationship, we add a city as a mostLovedCity for a user, and on the side of the city we add a field called lovedByUser, where we store the last five users who have chosen it as their mostLovedCity.
To erase the mostLovedCity relationship in a user. We must first create this relationship.
So let's write a function to add this relationship:
const addMostLovedCityValidator = () => {
return object({
set: object({
_id: objectIdValidation,
lovedCity: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const addMostLovedCity: ActFn = async (body) => {
const { lovedCity, _id } = body.details.set;
return await users.addRelation({
filters: { _id: new ObjectId(_id) },
projection: body.details.get,
relations: {
mostLovedCity: {
_ids: new ObjectId(lovedCity),
relatedRelations: {
lovedByUser: true,
},
},
},
replace: true,
});
};
coreApp.acts.setAct({
schema: "user",
actName: "addMostLovedCity",
validator: addMostLovedCityValidator(),
fn: addMostLovedCity,
});
In the above function, we get the ID of a user and the ID of a city and store that city as mostLovedCity in the user. Also, on the city side, we add this user to the lovedByUser list.
before execute main → user → addMostLovedCity:
executing
main → user → addMostLovedCity:
after execute
main → user → addMostLovedCity:
Add E2E Test
Like before, for adding addMostLovedCity request to E2E test section, you should click on the E2E button, like bottom picture.
Then, in the E2E section and addMostLovedCity sequence, you should replace the user id and city id that you set capture in own sequence with default user id and city id. default user id and city id in addMostLovedCity sequence is like below picture.
The replaced user and city id is like below picture.
Well, finally, let's write the mostLovedCity remove function:
const removeMostLovedCityValidator = () => {
return object({
set: object({
_id: objectIdValidation,
lovedCity: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const removeMostLovedCity: ActFn = async (body) => {
const { lovedCity, _id } = body.details.set;
return await users.removeRelation({
filters: { _id: new ObjectId(_id) },
projection: body.details.get,
relations: {
mostLovedCity: {
_ids: new ObjectId(lovedCity),
relatedRelations: {
lovedByUser: true,
},
},
},
});
};
coreApp.acts.setAct({
schema: "user",
actName: "removeMostLovedCity",
validator: removeMostLovedCityValidator(),
fn: removeMostLovedCity,
});
In the above function, we get the ID of a user along with the ID of a city, and in that user, we delete the mostLovedCity field if it matches this ID, and on the city side, we remove this user from the lovedByUser list. (To know the steps to do this and understand how the relatedRelations are managed, please read this section, just note that we do not have a document to add here, and we only do the steps to remove and place the next document in the limited lists.)
Run the code
Since all the code is getting bigger and bigger, we put it on GitHub, you can see and download it here.
By running the codes and going to the playground, you can see and test the functions added to the user.
before execute main → user → removeMostLovedCity:
executing
main → user → removeMostLovedCity:
after execute
main → user → removeMostLovedCity:
Add E2E Test
For adding removeMostLovedCity request to E2E section you should click on the E2E button, like below picture.
Then, in the E2E section and removeMostLovedCity sequence, you should replace the user id and city id that you set capture in own sequence with default user id and city id. default user id and city id in removeMostLovedCity sequence is like below picture.
The replaced user and city id is like below picture.
What is the relationship really?
Let's compare a bit, it may be funny, but let's do it.
what are a real relationship between People?
- Right relationships are lasting and long -term.
- Both parties accept responsibility for relationships and changes.
- Changes on one side of the relationship also affect the other side.
- The two sides of a relationship live together.
- If the relationship leads to the birth of a child, both parties will accept the relationship.
- If one party dies, especially if it's a lover, the other party probably won't want to live either.
Now let's look at the relationship features in SQL:
- There is no real relationship. The two sides have only one connection.
- Relationships are not together. And each lives independently.
- Relationships are not deep.
- Relationships do not give birth to any children. (In Lesan, you will see that relationships encourage you to create new models)
- If we want to delete one side of the relationship, especially if the other side is dependent on this side, we will only receive an error message.
- And the most important thing is that it is not clear what kind of effects each relationship we create will have on the other side of the relationship.
What are the relationships in NoSQL?
- There is no real relationship. In fact, there is no proper connection between the two sides.
- If we consider embeding as a relationship:
- the changes of each party have no effect on the other side and cause many inconsistencies in the data.
- the two sides leave each other after the relationship. Infact, it is not clear what kind of effects each relationship we create will have on the other side of the relationship.
- In this type of databases, they prevent the child from being born, and if a child is born, only one side will be informed of it and probably will not take much responsibility for it.
- There is no management in deleting information and they are easily deleted by either side of the relationship.
And finally what are the relationships in Lesan:
- Relationships are as strong as possible, and are described in detail when creating a model.
- Relationships fully contain each other's pure properties within themselves.
- If a relationship changes, all related parties will be notified and apply the changes according to a process.
- By establishing a relationship and seeing many changes on one side of this relationship, you are encouraged to create new relationships. Don't worry, this issue will not add more complexity to the data model, but it will also make the data more understandable. (Below there is an example to understand this)
- Having complete information about relationships, we can prevent the deletion of a document that other documents are dependent on with an error message, and we can recursively delete all dependent documents by setting a small option.
- And the most important point is that it is exactly clear what effects each relationship we have created will have on the other side of the relationship.
Example
SQL
So let's go back to our example (countries, cities and users)
If we want to define a relationship between the country, city and user models in SQL, this relationship will be as follows (The code below is written for PostgreSQL):
CREATE TABLE country (
id serial PRIMARY KEY,
name VARCHAR ( 50 ) UNIQUE NOT NULL,
abb VARCHAR ( 50 ) NOT NULL,
population INT NOT NULL,
);
CREATE TABLE city (
id serial PRIMARY KEY,
name VARCHAR ( 50 ) UNIQUE NOT NULL,
abb VARCHAR ( 50 ) NOT NULL,
population INT NOT NULL,
country_id INT NOT NULL,
FOREIGN KEY (country_id)
REFERENCES country (country_id),
);
CREATE TABLE user (
id serial PRIMARY KEY,
name VARCHAR ( 50 ) UNIQUE NOT NULL,
age INT NOT NULL,
country_id INT NOT NULL,
FOREIGN KEY (country_id)
REFERENCES country (country_id),
city_id INT NOT NULL,
FOREIGN KEY (city_id)
REFERENCES city_id (city_id),
);
Pay attention that the relationships are separated from each other as much as possible and only one ID is kept on one side. Whenever we need to know the details of the relationship, we have to visit both sides of the relationship.
For example, let's imagine that we want the cities of Iran, we must first find Iran and then filter the city using Iran ID.
Now let's imagine that we want to find the country of Iran along with its 50 most populated cities, we have to find Iran first, then find the cities according to the ID filter of the country of Iran along with the sort based on the city population field and the limit of 50.
Let's run a more complex query. Suppose we want to receive 50 most populous cities from the 50 most populous countries in the world.
Or we want to find the oldest people in the 50 most populous countries in the world.
To get the above cities or users, we have to create and execute much more complex queries that may be time-consuming in some cases, although there are alternative ways such as creating separate tables in SQL for these specific purposes, but these ways also add a lot of complexity to the project.
NoSQL
What if we could do the above with just a simple query? NoSQL is designed for this, let's see how these tables are implemented in NoSQL databases (Here we have used mongoose so that we can have the shape of the schemas):
const CountrySchema = new mongoose.Schema ({
name: String,
abb: String,
population: Number,
});
const Country = mongoose.model("Country", CountrySchema)
const CitySchema = new mongoose.Schema ({
name: String,
abb: String,
population: Number,
country: {
type: mongoose.Schema.Types.ObjectId,
ref: Country
}
});
const City = mongoose.model("City", CitySchema)
const UserSchema = new mongoose.Schema ({
name: String,
age: Number,
country: {
type: mongoose.Schema.Types.ObjectId,
ref: Country
},
city: {
type: mongoose.Schema.Types.ObjectId,
ref: City
}
});
const User = mongoose.model("User", CitySchema)
The code above is exactly equivalent to the code we wrote for PostgreSQL and creates exactly the same tables in MongoDB. All the issues we described for SQL will be present here as well, but wait, we can add other fields to these tables to simplify the complex queries we talked about above.
We can store its cities inside each country by adding a field called cities. Pay attention to the following code:
const CountrySchema = new mongoose.Schema ({
name: String,
abb: String,
population: Number,
cities: [{
name: String,
abb: String,
population: Number,
}]
});
Now we can get a country along with its cities just by sending a single query. For example, we can get the country of Iran along with its cities with just one query from the database. But wait, some new issues have arisen.
- How should we save the cities inside the country ?
For this, it is necessary to find the country associated with the city in the function we write to add the city and add this new city to the cities field of that country. This means that when adding a city in the table of cities, we must insert a new record and edit a record in the table of countries. - Can we store all the cities of a country within itself ?
The short answer is no, although it is possible that the number of cities in a country can be stored within the country, but in some situations, the number of documents that we need to store inside another document may be very large, such as the users of a country. So what should we do? Save a limited number of cities, how many? The number that we feel should be requested in the first pagination (for example, 50 numbers). So, in the function we have written to store the city, we must be aware that if the field of cities within the country has stored 50 cities within itself, do not add this new city to this field. - What if a city changes ?
Well, as a rule, we should find the country related to that city and check whether this city is stored in the field of cities of that country or not, if yes, we should correct it. - What if a city is removed ?
We need to find the country associated with the city and if this city is present in the field of cities of that country, we should modify that field as well. How? First, we remove this city from the array of cities, then we check whether this field has reached the limited number that we have previously considered for it, if yes, then this country may have other cities that are not in this field. So we need to find one of them and add it to this field.
All this was added just so that we can have its cities when receiving a country!
Don't worry, it's worth it. Because we usually add cities and countries once, besides, its information does not change much (except for the population, which we will talk about later). And on the other hand, these cities and countries will be received many times.
Now, what if we want to get the 50 most populous countries along with the 50 most populous cities of that country?
We can add a new field to the country. Pay attention to the following code:
const CountrySchema = new mongoose.Schema ({
name: String,
abb: String,
population: Number,
cities: [{
name: String,
abb: String,
population: Number,
}],
mostPopulousCities: [{
name: String,
abb: String,
population: Number,
}],
});
For mostPopulousCities Field, we should consider all the events that happened above, although with a slight change:
- What if a city changes ?
We need to find the country associated with the city, then see if this city is stored in the
citiesandmostPopulousCitiesfields of this country or not. If it is stored in thecitiesfield, we must do the same steps as above, but if it is stored in themostPopulousCitiesfield, we must first, see which city field has changed, if the population field has changed, this city may no longer be included in this list and we want to remove it from the list and add another city to this list based on its population, otherwise it is possible This city is not in themostPopulousCitieslist at all, but due to the change in the city's population, we want to add it to this list. Note that this city may be added anywhere in this list, and on the other hand, if this list has reached the end of the predetermined capacity, we must remove a city from the end.
Let's look at this issue from the other side of the relationship.
What if we want to access the country related to that city from within the cities?
Well, for this purpose, we can add a field called the country in each city. And instead of storing only the country's ID in it, embed all the country's information in it.
const CitySchema = new mongoose.Schema ({
name: String,
abb: String,
population: Number,
country: {
name: String,
abb: String,
population: Number,
}
});
The good thing here is that this field is no longer an array, it's just an object, so we don't have any of the calculations we had to manage cities in the country. And it is enough to find the country related to the city in the function we wrote to add the cities and put it as the value of the country field in the city.
But the critical issue here is that if the country is updated, we must find all the cities related to that country and update the country stored inside the cities as well. Sometimes this number may be very high, for example, consider the country of China or India and put users instead of the city and imagine that all the people of this country are registered in this software, in this case with every update The country should update at least another billion documents (there are different solutions for this problem in the Lesan, which you will see below).
Finally, our mongoose model will probably look like this:
const CountrySchema = new mongoose.Schema ({
name: String,
abb: String,
population: Number,
cities: [{
name: String,
abb: String,
population: Number,
}],
mostPopulousCities: [{
name: String,
abb: String,
population: Number,
}],
});
const Country = mongoose.model("country", CitySchema);
const CitySchema = new mongoose.Schema ({
name: String,
abb: String,
population: Number,
country: {
name: String,
abb: String,
population: Number,
}
});
const City = mongoose.model("City", CitySchema)
const UserSchema = new mongoose.Schema ({
name: String,
age: Number,
country: {
type: mongoose.Schema.Types.ObjectId,
ref: Country
},
city: {
type: mongoose.Schema.Types.ObjectId,
ref: City
}
});
const User = mongoose.model("User", CitySchema)
Lesan
So, if we want to create the same relationships with Lesan, what should we do? Just enter the code below:
// Country Model
const countryCityPure = {
name: string(),
population: number(),
abb: string(),
};
const countryRelations = {};
const countries = coreApp.odm.newModel(
"country",
countryCityPure,
countryRelations,
);
// City Model
const cityRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
mostPopulousCities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "population",
order: "desc" as RelationSortOrderType,
},
},
},
},
};
const cities = coreApp.odm.newModel(
"city",
countryCityPure,
cityRelations,
);
// User Model
const userPure = {
name: string(),
age: number(),
};
const userRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
users: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
},
},
city: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
users: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
},
},
};
const users = coreApp.odm.newModel(
"user",
userPure,
userRelations,
);
In the code above, we have not defined any relationship for the country, but in fact, the country is related to both the city and the user, but this relationship is defined by them because they were the requesters of the relationship.
If you pay attention, we have defined two relatedRelations for the country when defining city relations, which causes two fields called cities and mostPopulousCities to be added to the country schema. For the cities field, we have set the sort on _id and in descending order, and we have limited the capacity of the field to 50 numbers with the limit option, which causes the last 50 cities of each country to be stored in it.
But in the mostPopulousCities field we have once again stored 50 cities in each country, but this time by sorting on the City population field.
The important thing here is that all the things we said we need to do in NoSQL databases using Mongoose are done automatically in Lesan and you don't need any additional code to manage these relationships during insert, update or delete. All work will be done by Lesan.
Test Realation in Lesan
Clone and run E2E
you can clone lesan repo by git clone https://github.com/MiaadTeam/lesan.git command and the go to tests/playground folder and run e2e.ts file by execute this command: deno run -A e2e.ts you should see this output:
HTTP webserver running.
please send a post request to http://localhost:1366/lesan
you can visit playground on http://localhost:1366/playground
Listening on http://localhost:1366/
Visit Playground
Now you can visit the playground at http://localhost:1366/playground and send requests to the server for country, city, and user models:
and use addCountry, addCountries, updateCountry, getCountries, deleteCountry methods for country models:
also use addCity, updateCity, addCities, getCities and addCityCountry for city model:
and also use addUser, addUsers, addUserLivedCities, addUserCountry, addUserCities, addMostLovedCity, removeMostLovedCity, removeLivedCities, updateUser, getUser and getUsers for user model:
you can find
e2e.ts raw file here and see all functions write in it.
Visit Schema and Act
You can see all schema information including pure, mainRelation and relatedRelation inside schema modal box at playground when clicking on Schema button:
here is the screenshot of schema modal box:
Also you can see all Act information including service, model, act and its inputs such as set and get inside act modal box at playground when clicking on Act button:
here is the screenshot of act modal box:
Visit E2E test modal
We have already prepared several E2E test series for e2e.ts's file, and you can go to E2E modal box by clicking the E2E test button:
here you can import E2E test config file by clicking on import button:
We have these 3 json files next to the e2e.ts file, all three of which can be used for E2E testing:
Configdata E2E file
In the config.json file, all the functions written in e2e.ts have been tested.
In fact, all the important functions, including all the functions of the ODM section in Lesan, have been tested in this file.
Let us see all the parts of this E2E test one by one (The point is that in almost all the functions written in ODM, relationships are important and Lesan must manage them.):
-
create new country with
main→country→addCountry:
- here we used
mainservice andcountrymodel andaddCountryact. - we repeat this section 15 times.
- we captured
countryIdfrom last response of this sections. - here we used faker for create
name,populationandabbfor new country.
- here we used
-
create multiple country with one request with
main→country→addCountries:- here we used
mainservice andcountrymodel andaddCountriesact. - here we insert an array of
countryformultiCountrieskey insidesetobject. - we captured some country ID from request response.
- here we used
-
create new city with
main→city→addCity:- here we used
iranIdthe captured variable we get from request number 2 response. - we captured
body._idwith theharatIdfrom response.
- here we used
-
create multiple city with
main→city→addCities:- here we insert an array of
cityformultiCitieskey insidesetobject. - here we used
iraqIdthe captured variable we get from request number 2 response.
- here we insert an array of
-
create multiple city with
main→city→addCities:- here we insert an array of
cityformultiCitieskey insidesetobject. We also usedfakerhere. - here we used
afghanIdthe captured variable we get from request number 2 response.
- here we insert an array of
-
change country relation of a city with
main→city→addCityCountry:- here we used
haratIdandafghanIdcaptured variables. please checkmongodb compassbeacuase the both side of relation are changend.
- here we used
-
create new city with
main→city→addCity: -
create new city with
main→city→addCity:- please note that we set
isCapitalfield to true so the capital field of related country is filled with this city.
- please note that we set
-
create new city with
main→city→addCity: -
create new city with
main→city→addCity: -
create new city with
main→city→addCity: -
create new city with
main→city→addCity: -
create new city with
main→city→addCity: -
create new city with
main→city→addCity: -
create new city with
main→city→addCity: -
create new city with
main→city→addCity: -
create new city with
main→city→addCity: -
create new city with
main→city→addCity: -
just get list of countries with
main→country→getCountries: -
create new city with
main→user→addUser:- the country were user lived is
Iran. - the user lived in two city:
HamedanandTehran.
- the country were user lived is
-
create new city with
main→user→addUser: -
create new city with
main→user→addUser: -
create new city with
main→user→addUser: -
create new city with
main→user→addUser: -
create new city with
main→user→addUser: -
create new city with
main→user→addUser: -
create new city with
main→user→addUser: -
create new city with
main→user→addUser: -
change country relation of a user with
main→user→addUserCountry:1.we just send a country ID with a user ID and with a simple function all magic happen in both side of relation.
-
change country relation of a user with
main→user→addUserCountry: -
add city to
livedCitiesrelation of a user withmain→user→addUserLivedCities:1.we just send list of city ID with a user ID and with a simple function all magic happen in both side of relation.
-
add city to
livedCitiesrelation of a user withmain→user→addUserLivedCities: -
remove city from
livedCitiesrelation of a user withmain→user→removeLivedCities:1.we just send list of city ID with a user ID and with a simple function all magic happen in both side of relation.
-
add a city to
mostLovedCityrelation of a user withmain→user→addMostLovedCity: -
add a city to
mostLovedCityrelation of a user withmain→user→addMostLovedCity: -
remove a city from
mostLovedCityrelation of a user withmain→user→removeLivedCities: -
update a country with
main→country→updateCountry:- We send the ID of a country along with the rest of the pure fields (pure fields are optional) to it, and in a simple function the following will happen:
- Update the country itself
- Updating the country field in all cities related to that country
- Updating the country field in all users related to that country
The point to be mentioned here is that you should not send another field for updating other than pure fields. Because the relationships must be completely managed by Lesan himself.
- We send the ID of a country along with the rest of the pure fields (pure fields are optional) to it, and in a simple function the following will happen:
-
update a city with
main→city→updateCity: -
update a user with
main→user→updateUser:
After clicking the run E2E test button, you will go to the test results page.
If you scroll down a little, you can see the results of each sequence separately:
- with this button you can change view of panel from
body-header & DescriptiontoREQUEST & RESULT - show some description about sequence including request number & timing, captured value and so on.
- show unparsed
headerandbodyyou send to the backend. - show the
indexof each sequence. - show
responseget back from server. - show parsed request you send to server, including parsed
headerandbody. - pagination for sequence with more than 1 request.
After finished executing all test in configdata.json you have a nice data inserted to sample collection in mongodb.
You can play with this data in playground and change everything you want.
fakerTest E2E file
This file is not very important in this section, it is only used to test faker functions in E2E.
stress E2E file
This file is used to test the insertMany that has a relation with it. Note that a very large number of server-side requests are sent, resulting in the creation of a country with 50,000 cities for that country and 50,000 users for that country.
-
create a country with
main→country→addCountry: -
create
50,000cities withmain→city→addCities: -
create
50,000users withmain→user→addUsers:
After clicking the run E2E test button, 10001 requests should be sent to the server, and as a result, a country, 50,000 cities, and 50,000 users should be created.
Pay attention to the entered data, although we have used insertMany, all relationships are embedded.
In the country, we have embedded the cities in 4 fields separately and with different conditions. And we have embedded users in two fields with different conditions.
In the cities, we have embedded the respective country.
In the user schema, for each user, we have embedded the cities he has lived in as a list, the city he is most interested in as an object, and the country of each user as an object.
The interesting thing about this E2E test is that after the database is filled, you can test a big update in Playground. If you update the country in Playground, 100,000 other documents must be updated along with the country record itself.
before execute main → country → updateCountry:
executin
main → country → updateCountry:
after execute
main → country → updateCountry:
relationship sweets in Lesan
shoma tanha ba fieldhaye pure yek schema sar o kar darid va modiriat rabeteha tamaman be sorat khodkar tavasot lesan anjam mishavad. shoma mitavanid bar asas rabeteye yek schema an ra sort ya filter konid shoma baraye daryaft dadaha ba queryhaye pichide asnad besiyar kamtari ra az database jamavari mikonid. (link bedam be tozihat kamel)
relationship bitterness in Lesan
barkhi az rabeteha baes eijad updatehaye besiyar bozorg mishavand. rah hal: 1-eijad rabeteye jadid 2-qq 3-in-memory db
اول راجع به ایمکه رابطه چی هست حرف میزنم، بعد میگم اسکیوال فقط کانکشن برقرار میکنه، بعد میگم نواسکیوال هم فقط امبد میکنه و مدیریت درست نداره.
بعد میام راجع به اینکه هر فیلد پر تغییری میتونه به رابطه تبدیل بشه حرف میزنم، مثال بانک و ثبت احوال کشورها رو میگم.
بعد میام راجع به اینکه رابطههای دو سر چندتایی نمیتونه دو سر بی انتها داشته باشه حرف میزنم و چندتا مثال میزنم.
بعد راجع به آپدیت شدن رابطهها حرف میزنم.
بعد راجع به دیتابیس اینمموری حرف میزنم.
بعد راجع به مدیریت کیوکیو حرف میزنم.
حتما یادم باشه راجع به اینکه وقتی امبد میکنی چقدر دریافت دادهها راحت هست هم حرف بزنیم، از اون طرف راجع به اینکه فیلتر کردنشون بر اساس فیلد امبد شده چه معجزهای میکنه هم حرف بزنم
حتما راجع به اینکه چه نکتههایی داره طراحی مدل توی لسان حرف بزنم یعنی اینکه بگم رابطهها از یک طرف تعریف میشن بعد توی طرف بعدی از همینجا ساید افکتهاش مشخص میشه بگم و اینکه نگران نباشن چون توی پلیگراند میتونن برای یک مدل همهی رابطههایی که داره چه از طرف خودش تعریف شده باشه چه بقیه براش تعریف کرده باشن رو ببینه و یه عکس از پلیگراند بذارم، نکته مهمش اینه که بگم همیشه رابطه رو از طرف مهمش درخواست بدن تا بشه هر چقدر میخوایم ساید افکت مناسب براش بذاریم
این رو هم بنویسم که در واقع مشکلات آپدیت و دیلیت و اینزرت همین الآن هم هم توی لایه ی کش سرور هم توی سی دی ان ها وجود داره و ما این معضلات رو آوردیم توی لاجیک بک اند و ساده سازی کردیم و در واقع کلی هم از اتلاف انرژی و چیزای دیگه هم اینجا جلوگیری کردیم علاوه بر این اینکه اکثر این عملیات ها رو هم خودکار کردیم.
findOne and find functions
When you want to penetrate only one step in the depth of relationships, the best choices are find and findOne functions.
According to Mongo's behavior, only Aggregation can be used to send a left join query to receive relationships. But considering that all relationships are automatically embedded in Lesan, you can use find and findOne along with aggregation to get one level of relationships, i.e. the father along with all the children.
findOne functions
find a user
lets add getUser functions:
const getUserValidator = () => {
return object({
set: object({
userId: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const getUser: ActFn = async (body) => {
const {
set: { userId },
get,
} = body.details;
return await users.findOne({
filters: { _id: new ObjectId(userId) },
projection: get,
});
};
coreApp.acts.setAct({
schema: "user",
actName: "getUser",
validator: getUserValidator(),
fn: getUser,
});
findOne functions accept three inputs:
filterswhich is mongodb findOne query operationprojectionwhich is mongodb projection operation- and optional
optionwhich is mongodb findOption
You can also read mongodb findOne section for more information.
executing main → user → getUser:
Add E2E Test
Like before, for adding getUser request to E2E section you should click on the E2E button, like below picture.
Then, in the E2E section and getUser sequence, you should replace the user id that you set capture in own sequence with default user id. default user id in getUser sequence is like below picture.
The replaced user id is like below picture.
find a city or country
Finding a city or country is exactly the same as finding a user.
Pay attention to the following code:
const getCountryValidator = () => {
return object({
set: object({
countryId: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("country", {
citiesByPopulation: 1,
users: 1,
capital: 1,
}),
});
};
const getCountry: ActFn = async (body) => {
const {
set: { countryId },
get,
} = body.details;
return await countries.findOne({
filters: { _id: new ObjectId(countryId) },
projection: get,
});
};
coreApp.acts.setAct({
schema: "country",
actName: "getCountry",
validator: getCountryValidator(),
fn: getCountry,
});
const getCityValidator = () => {
return object({
set: object({
cityId: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("city", { country: 1, lovedByUser: 1 }),
});
};
const getCity: ActFn = async (body) => {
const {
set: { cityId },
get,
} = body.details;
return await cities.findOne({
filters: { _id: new ObjectId(cityId) },
projection: get,
});
};
coreApp.acts.setAct({
schema: "city",
actName: "getCity",
validator: getCityValidator(),
fn: getCity,
});
The only difference here is in the coreApp.schemas.selectStruct function. The second input of this function, instead of a number, is an object of the relationship key with a value of one number, which explicitly specifies how much this act can penetrate in this particular relationship.
executing main → city → getCity:
Add E2E Test
For adding getCity request to E2E test section, you should click on the E2E button, like bottom picture.
Then, in the E2E section and getCity sequence, you should replace the city id that you set capture in own sequence with default city id. default city id in getCity sequence is like below picture.
The replaced city id is like below picture.
executing main → country → getCountry:
You can find full example here and test the findOne method in local computer.
Add E2E Test
Also, for adding getCountry request to E2E test section, you should click on the E2E button, like bottom picture.
Then, in the E2E section and getCountry sequence, you should replace the country id that you set capture in own sequence with default country id. default counry id in getCountry sequence is like below picture.
The replace country id is like below picture.
find functions
find users
lets add getUsers functions:
const getUsersValidator = () => {
return object({
set: object({
page: number(),
limit: number(),
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const getUsers: ActFn = async (body) => {
let {
set: { page, limit },
get,
} = body.details;
page = page || 1;
limit = limit || 50;
const skip = limit * (page - 1);
return await users
.find({ projection: get, filters: {} })
.skip(skip)
.limit(limit)
.toArray();
};
coreApp.acts.setAct({
schema: "user",
actName: "getUsers",
validator: getUsersValidator(),
fn: getUsers,
});
find functions accept three inputs:
filterswhich is mongodb filter query operationprojectionwhich is mongodb projection operation- and optional
optionwhich is mongodb findOption
You can also read mongodb find section for more information.
executing main → user → getUsers:
Add E2E Test
For adding getUsers request to E2E test section, you should click on the E2E button, like bottom picture.
Well, in the E2E section you can see the getUsers sequence.
find cities or countries
Finding cities or countries is exactly the same as finding users.
Pay attention to the following code:
const getCountriesValidator = () => {
return object({
set: object({
page: number(),
limit: number(),
}),
get: coreApp.schemas.selectStruct("country", {
citiesByPopulation: 1,
users: 1,
capital: 1,
}),
});
};
const getCountries: ActFn = async (body) => {
let {
set: { page, limit },
get,
} = body.details;
page = page || 1;
limit = limit || 50;
const skip = limit * (page - 1);
return await countries
.find({ projection: get, filters: {} })
.skip(skip)
.limit(limit)
.toArray();
};
coreApp.acts.setAct({
schema: "country",
actName: "getCountries",
validator: getCountriesValidator(),
fn: getCountries,
});
const getCitiesValidator = () => {
return object({
set: object({
page: number(),
limit: number(),
}),
get: coreApp.schemas.selectStruct("city", { country: 1, lovedByUser: 1 }),
});
};
const getCities: ActFn = async (body) => {
let {
set: { page, limit },
get,
} = body.details;
page = page || 1;
limit = limit || 50;
const skip = limit * (page - 1);
return await cities
.find({ projection: get, filters: {} })
.skip(skip)
.limit(limit)
.toArray();
};
coreApp.acts.setAct({
schema: "city",
actName: "getCities",
validator: getCitiesValidator(),
fn: getCities,
});
The only difference here is in the coreApp.schemas.selectStruct function. The second input of this function, instead of a number, is an object of the relationship key with a value of one number, which explicitly specifies how much this act can penetrate in this particular relationship.
executing main → city → getCities:
Add E2E Test
Like before, for adding getCities request to E2E test section, you should click on the E2E button, like bottom picture.
Well, in the E2E section you can see the getCities sequence.
executing main → country → getCountries:
You can find full example here and test the find method in local computer.
Add E2E Test
For adding getCountries request to E2E test section, you should click on the E2E button, like bottom picture.
Well, in the E2E section you can see the getCountries sequence.
aggregation functions
We should use Aggregation when we want to penetrate more than one step in the depth of relationships, that is, if we want to go from father to grandson or vice versa.
Don't worry, all the commands you need to penetrate the depths of the relationship and select their fields are automatically generated by Lesan.
The great thing about Aggregation in Lesan is that relationship penetration is always one step behind the client request. For more information about this please see here
We can use aggregation instead of find and findOne.
Get list of documents with aggregation
Pay attention to the code written below:
const getCitiesAggregationValidator = () => {
return object({
set: object({
page: number(),
take: number(),
countryId: optional(objectIdValidation),
}),
get: coreApp.schemas.selectStruct("city", 3),
});
};
const getCitiesAggregation: ActFn = async (body) => {
const {
set: { page, take, countryId },
get,
} = body.details;
const pipeline = [];
pipeline.push({ $skip: (page - 1) * take });
pipeline.push({ $limit: take });
countryId &&
pipeline.push({ $match: { "country._id": new ObjectId(countryId) } });
return await cities
.aggregation({
pipeline,
projection: get,
})
.toArray();
};
coreApp.acts.setAct({
schema: "city",
actName: "getCitiesAggregation",
validator: getCitiesAggregationValidator(),
fn: getCitiesAggregation,
});
In the code above, we have used aggregation to find the cities.
As you can see, we have added two pipelines to create pagination by using page and take inputs, but these two pipelines are not all that is sent to the database. Lesan automatically creates lookup, unwind and projection pipelines based on get input. So that we can establish a join between the schemas and select and return the data requested by the user.
If this request is sent to the server:
{
"body": {
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": ""
},
"body": {
"service": "main",
"model": "city",
"act": "getCitiesAggregation",
"details": {
"get": {
"_id": 1,
"name": 1,
"country": {
"_id": 1,
"name": 1
},
"users": {
"_id": 1,
"name": 1
}
},
"set": {
"page": 1,
"take": 10
}
}
}
}
}
these pipelines will be created:
[
{
"$project": {
"_id": 1,
"name": 1,
"country": { "_id": 1, "name": 1 },
"users": { "_id": 1, "name": 1 }
}
}
]
And if this request is sent to the server:
{
"body": {
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": ""
},
"body": {
"service": "main",
"model": "city",
"act": "getCitiesAggregation",
"details": {
"get": {
"_id": 1,
"name": 1,
"country": {
"_id": 1,
"name": 1,
"cities": {
"_id": 1,
"name": 1
},
"citiesByPopulation": {
"name": 1,
"_id": 1
},
"capital": {
"_id": 1,
"name": 1
}
},
"users": {
"_id": 1,
"name": 1,
"livedCities": {
"name": 1,
"_id": 1
},
"country": {
"_id": 1,
"name": 1
}
},
"lovedByUser": {
"_id": 1,
"name": 1
}
},
"set": {
"page": 1,
"take": 10
}
}
}
}
}
these pipelines will be created:
[
{
"$lookup": {
"from": "country",
"localField": "country._id",
"foreignField": "_id",
"as": "country"
}
},
{
"$unwind": {
"path": "$country",
"preserveNullAndEmptyArrays": true
}
},
{
"$lookup": {
"from": "user",
"localField": "users._id",
"foreignField": "_id",
"as": "users"
}
},
{
"$project": {
"_id": 1,
"name": 1,
"country": {
"_id": 1,
"name": 1,
"cities": {
"_id": 1,
"name": 1
},
"citiesByPopulation": {
"name": 1,
"_id": 1
},
"capital": {
"_id": 1,
"name": 1
}
},
"users": {
"_id": 1,
"name": 1,
"livedCities": {
"name": 1,
"_id": 1
},
"country": {
"_id": 1,
"name": 1
}
},
"lovedByUser": {
"_id": 1,
"name": 1
}
}
}
]
Note that pipelines are always one step behind the request, and send indexed lookup with _id for anything. because we embed all relations.
Because we have given the second input 3 in the coreApp.schemas.selectStruct("city", 3) function, we can penetrate one more step in the depth of relationships, you can send more complex queries in the playground.
You can find full example here and test the aggregation method in local computer.
executing main → city → getCitiesAggregation:
Add E2E Test
Like before, for adding getCitiesAggregation request to E2E test section, you should click on the E2E button, like bottom picture.
Then, in the E2E section and getCitiesAggregation sequence, you should replace the country id that you set capture in own sequence with default country id. default country id in getCitiesAggregation sequence is like below picture.
The replaced country id is like below picture.
Get a one document with aggregation
Because we may request the relations of a document more than one step and if we want to use lookup between two schemas, we have to use aggregation even to receive a document.
Enter the following code to find a user:
const getUserAggregationValidator = () => {
return object({
set: object({
userId: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("user", 2),
});
};
const getUserAggregation: ActFn = async (body) => {
const {
set: { userId },
get,
} = body.details;
const pipeline = [];
pipeline.push({ $match: { _id: new ObjectId(userId) } });
return await users
.aggregation({
pipeline,
projection: get,
})
.toArray();
};
coreApp.acts.setAct({
schema: "user",
actName: "getUserAggregation",
validator: getUserAggregationValidator(),
fn: getUserAggregation,
});
Note that the returned information will still be in an array but with one member.
You can find full example here and test the aggregation method in local computer.
executing main → user → getUserAggregation:
Add E2E Test
For adding getUserAggregation request to E2E test section, you should click on the E2E button, like bottom picture.
Then, in the E2E section and getUserAggregation sequence, you should replace the user id that you set capture in own sequence with default user id. default user id in getUserAggregation sequence is like below picture.
The replaced user id is like below picture.
findOneAndUpdate functions
Updating is the most challenging issue in Lesan. Because by updating one document, thousands or maybe millions of other documents may also be updated. Don't worry, this is done automatically by Lesan. And also for complex scenarios where millions of documents need to be updated, we have created various solutions.
Let's explore a few scenarios.
- Best case "Update
a user":
const updateUserValidator = () => {
return object({
set: object({
_id: objectIdValidation,
name: optional(string()),
age: optional(number()),
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const updateUser: ActFn = async (body) => {
const { name, age, _id } = body.details.set;
const setObj: { name?: string; age?: number } = {};
name && (setObj.name = name);
age && (setObj.age = age);
return await users.findOneAndUpdate({
filter: { _id: new ObjectId(_id) },
projection: body.details.get,
update: { $set: setObj },
});
};
coreApp.acts.setAct({
schema: "user",
actName: "updateUser",
validator: updateUserValidator(),
fn: updateUser,
});
When we were defining user relationships, we said that each user has a relationship with the cities he lived in. In defining this relationship, we said that we store the last 50 users who lived in these cities in the city table. So it is possible that the user who is updated may be in the list of these 50 users in several cities. So we have to find the cities where this user lives and update the list of users in those cities.
If we set the order of saving this list of 50 items based on a field from the user and the same field has been updated, the story will be a little more complicated. Because it is possible that if this user is in the list of 50, he will be removed from this list due to the updating of this field and another user who has suitable conditions will replace this user. For more information please read here.
All things will be the same for the country.
You can find full example here and test the findOneAndUpdate method in local computer.
before executing main → user → updateUser:
executing main → user → updateUser:
after executing main → user → updateUser:
Add E2E Test
Like before, for adding updateUser request to E2E section you should click on the e2e button (like bottom picture) to add your request to E2E section.
Then, in the E2E section and updateUser sequence, you should replace the user id that you set capture in own sequence with default user id. default user id in updateUser sequence is like below picture.
The replaced user id is like below picture.
- Worse case "Update
a country":
const updateCountryValidator = () => {
return object({
set: object({
_id: objectIdValidation,
name: optional(string()),
abb: optional(string()),
population: optional(number()),
}),
get: coreApp.schemas.selectStruct("country", 1),
});
};
const updateCountry: ActFn = async (body) => {
const { name, abb, population, _id } = body.details.set;
const setObj: { name?: string; abb?: string; population?: number } = {};
name && (setObj.name = name);
abb && (setObj.abb = abb);
population && (setObj.population = population);
return await countries.findOneAndUpdate({
filter: { _id: new ObjectId(_id) },
projection: body.details.get,
update: { $set: setObj },
});
};
coreApp.acts.setAct({
schema: "country",
actName: "updateCountry",
validator: updateCountryValidator(),
fn: updateCountry,
});
If the country is updated in a real scenario, the number of documents that need to be updated along with the country is likely to be very large. Because all users and cities of that country must be updated.
You can find full example here and test the findOneAndUpdate method in local computer.
before executing main → country → updateCountry:
executing main → country → updateCountry:
after executing main → country → updateCountry:
Add E2E Test
Like before, for adding updateCountry request to E2E section you should click on the e2e button (like bottom picture) to add your request to E2E section.
Then, in the E2E section and updateCountry sequence, you should replace the country id that you set capture in own sequence with default country id. default country id in updateCountry sequence is like below picture.
The replaced country id is like below picture.
Lesan's solution to the update challenge
As you have seen, we face a big problem for updating the country and millions of documents may need to be updated by updating one document. This is the biggest challenge in Lesan and we propose 3 solutions to solve this problem:
QQ solutions
QQ stands for query queue, a queue of commands to be sent to the database. We use QQ to chunk millions of updates. In this way, we take a section of several hundred thousand that we guess should be updated immediately and perform the update, then we store the ID of the last updated document along with the necessary commands for updating in QQ. And we do another part of the update whenever hardware resources are low on contention.
In-memmory DB solutions
Because we have detailed relationship information, we can know when sending information to the customer that the information sent has changes in QQ. As a result, by saving the changes in an in-memory database, we can correct the sent information in the same RAM and send it to the client, without changing the actual data in the hard disk.
Make new relation solutions
Perhaps the most beautiful thing about database relations is here.
In Lesan, after checking the data model, we can convert frequently changing fields into a new relationship.
Going back to the previous example, our real problem was updating a country because millions of documents needed to be updated.
In our example, each country had the following pure fields:
- name
- abb
- population
The name and abb fields usually do not change, in fact, in our example, they never change, but the population field may change a lot, imagine that we want to have the updated population of each country every second, that is, all countries are updated every second. And by updating each country, all the cities and users belonging to that country must be updated. Well, this is almost impossible.
But if we convert the population field into a new schema and create a relationship with the country for it, all problems will be solved.
Pay attention to the following code:
const populationPure = {
population: number(),
type: enums(["City", "Country"]),
};
const populationRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
populations: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
},
},
city: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
populations: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
},
},
};
const populations = coreApp.odm.newModel(
"population",
populationPure,
populationRelations
);
Now we can remove the population field from both the pure fields of the city and the pure fields of the country. But there is still the population field in both the country and the city, and we can write any type of filter or sort for the city and country schemas based on the population. Even better, now we have a list of the last 50 population records for each country and each city, and we can find, for example, countries that have added more than 100 people to their population in the last minute, without sending a complex query to the database.
And the most important thing is that now, with the population change, instead of millions of documents, only two documents change.
Because to change the population, we make a new record for the population and store this new record only in the country or city that belongs to it in the populations list. And we no longer need to update thousands of cities or millions of users.
deleteOne functions
Deletion has the same problems as update.
Delete a User
Pay attention to the following code:
const deleteUserValidator = () => {
return object({
set: object({
_id: string(),
}),
get: object({
success: optional(enums([0, 1])),
}),
});
};
const deleteUser: ActFn = async (body) => {
const {
set: { _id },
get,
} = body.details;
return await users.deleteOne({
filter: { _id: new ObjectId(_id) },
});
};
coreApp.acts.setAct({
schema: "user",
actName: "deleteUser",
validator: deleteUserValidator(),
fn: deleteUser,
});
If you remember, when we defined a relationship for the user, we gave it the following object as a relationship:
{
livedCities: {
optional: false,
schemaName: "city",
type: "multiple",
sort: {
field: "_id",
order: "desc",
},
relatedRelations: {
users: {
type: "multiple",
limit: 50,
sort: {
field: "_id",
order: "desc",
},
},
},
},
country: {
optional: false,
schemaName: "country",
type: "single",
relatedRelations: {
users: {
type: "multiple",
limit: 50,
sort: {
field: "_id",
order: "desc",
},
},
},
},
}
Fortunately, all the relationships that exist for the user are the ones we have defined above, and there is no relatedRelation for the user.
That's why we said fortunately, because if a document has relatedRelations, by deleting that document, some documents may be meaningless or not used. For example, if we want to delete a country in the example we have completed so far, the cities belonging to that country will become meaningless data.
There is no problem for users and we can simply use delete without other data being unused. But by deleting each user, we have to check its mainRelations and if the user is stored as an embed, delete the user there, and if another user needs to be added to the embed list, add the other user as well.
In our example, we have to check the embedded list of users in the cities where the user lives, as well as the list of users in the country belonging to that user.
You can find full example here and test the deleteOne method in local computer.
bfore execut main → user → deleteUser:
executing main → user → deleteUser:
after execut main → user → deleteUser:
Add E2E Test
For adding deleteUser request to E2E section you should click on the e2e button (like bottom picture) to add your request to E2E section.
Then, in the E2E section and deleteUser sequence, you should replace the user id that you set capture in own sequence with default user id. default user id in deleteUser sequence is like below picture.
The replaced country id is like below picture.
Delete a Country
What if we want to remove a country?
Although we have not defined any relationship for the country, both the city and the user have created relationships with the country.
const countryRelations = {};
const cityRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
citiesByPopulation: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "population",
order: "desc" as RelationSortOrderType,
},
},
capital: {
type: "single" as RelationDataType,
},
},
},
};
const userRelations = {
livedCities: {
optional: false,
schemaName: "city",
type: "multiple",
sort: {
field: "_id",
order: "desc",
},
relatedRelations: {
users: {
type: "multiple",
limit: 50,
sort: {
field: "_id",
order: "desc",
},
},
},
},
country: {
optional: false,
schemaName: "country",
type: "single",
relatedRelations: {
users: {
type: "multiple",
limit: 50,
sort: {
field: "_id",
order: "desc",
},
},
},
},
};
As we said earlier, the data created based on this
country will be useless. Here the cities and users created based on this country become useless.
Pay attention to the following code:
const deleteCountryValidator = () => {
return object({
set: object({
_id: string(),
}),
get: object({
success: optional(enums([0, 1])),
}),
});
};
const deleteCountry: ActFn = async (body) => {
const {
set: { _id },
get,
} = body.details;
return await countries.deleteOne({
filter: { _id: new ObjectId(_id) },
});
};
coreApp.acts.setAct({
schema: "country",
actName: "deleteCountry",
validator: deleteCountryValidator(),
fn: deleteCountry,
});
By adding the above code and running the software and sending a request to delete a country, and finally if that country has a city or user, we will encounter the following error:
{
body: {
message: please clear below relations status before deletion: [ { schemaName: country, type: single, optional: false, fieldName: country, collection: city, doc: { _id: 65a3d213e18957d8c176ffb4, name: Hamedan, population: 900000, abb: HM, country: { _id: 65a3d213e18957d8c176ffb2, name: Islamic Republic Of Iran, population: 89000000, abb: IR }, users: [ { _id: 65a3d213e18957d8c176ffc0, name: Mohammad Sheida, age: 20 }, { _id: 65a3d213e18957d8c176ffbf, name: Elham Afshar, age: 25 }, { _id: 65a3d213e18957d8c176ffbd, name: Saeid Ghal, age: 27 }, { _id: 65a3d213e18957d8c176ffbc, name: Ehsan Akefi, age: 20 }, { _id: 65a3d213e18957d8c176ffbb, name: Amir Meyari, age: 30 } ] } }, { schemaName: country, type: single, optional: false, fieldName: country, collection: user, doc: { _id: 65a3d213e18957d8c176ffb7, name: Syd Amir, age: 36, livedCities: [ { _id: 65a3d213e18957d8c176ffb4, name: Hamedan, population: 900000, abb: HM }, { _id: 65a3d213e18957d8c176ffb5, name: Tehran, population: 1000000, abb: TH } ], country: { _id: 65a3d213e18957d8c176ffb2, name: Islamic Republic Of Iran, population: 89000000, abb: IR } } }]
},
success: false
}
We have two ways:
Deleteall these documentsrelatedto thiscountryone by one.- Set the
hardCascadeoption totruein thedeleteOnefunction. We change the above code as follows:
return await countries.deleteOne({
filter: { _id: new ObjectId(_id) },
hardCascade: true,
});
This will cause all the dependent documents and the dependent documents of these dependent documents to be deleted recursively.
You can find full example here and test the deleteOne method in local computer.
bfore execut main → country → deleteCountry:
executing main → country → deleteCountry:
after execut main → country → deleteCountry:
Add E2E Test
Like before, for adding deleteCountry request to E2E section you should click on the e2e button (like bottom picture) to add your request to E2E section.
Then, in the E2E section and deleteCountry sequence, you should replace the country id that you set capture in own sequence with default country id. default country id in deleteCountry sequence is like below picture.
The replaced country id is like below picture.
insertMany functions
Another surprise of Lesan is the use of insertMany while all relationships can be embedded correctly.
Consider the following example:
const addCitiesValidator = () => {
return object({
set: object({
multiCities: array(object(countryCityPure)),
country: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("city", 1),
});
};
const addCities: ActFn = async (body) => {
const { country, multiCities } = body.details.set;
return await cities.insertMany({
docs: multiCities,
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
cities: true,
citiesByPopulation: true,
capital: false,
},
},
},
});
};
coreApp.acts.setAct({
schema: "city",
actName: "addCities",
validator: addCitiesValidator(),
fn: addCities,
});
There are two important points in the above code:
-
The
multiCitiesinput is anarrayofpurecityfieldobjects. Therefore, it must have the following value:"multiCities": [ { "name": "Beirout", "abb": "BI", "population": 20000000 }, { "name": "Baalbak", "abb": "BA", "population": 850000 } ]The beautiful thing here is that before the
addCitiesfunction is executed, all data, includingmultiCities, isvalidated. This feature allows us tovalidatethewrongdatabeforesending anycommandto thedatabase. -
The second point is that we explicitly set the
capitalrelation in the cityrelatedRelationtofalse. Because we do not know whichcityis going to be chosen as thecapital. In general,one-to-onerelations ininsertManyshould always befalsebecause they destroy the concept ofinsertManyand cause itsrelatedRelationsto be updatedoncefor every new document that is added, which is usually wrong.
Pay attention that all changes are sent to the database with an aggregation pipeline.
You can find full example here and test the insertMany method in local computer.
bfore execut main → city → addCities:
executing main → city → addCities:
after execut main → city → addCities:
Let us use insertMany to add users:
const addUsersValidator = () => {
return object({
set: object({
multiUsers: array(object()),
country: objectIdValidation,
livedCities: array(objectIdValidation),
lovedCity: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const addUsers: ActFn = async (body) => {
const { country, multiUsers, livedCities, lovedCity } = body.details.set;
const obIdLivedCities = livedCities.map((lp: string) => new ObjectId(lp));
return await users.insertMany({
docs: multiUsers,
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
users: true,
},
},
livedCities: {
_ids: obIdLivedCities,
relatedRelations: {
users: true,
},
},
mostLovedCity: {
_ids: new ObjectId(lovedCity),
relatedRelations: {
lovedByUser: true,
},
},
},
});
};
coreApp.acts.setAct({
schema: "user",
actName: "addUsers",
validator: addUsersValidator(),
fn: addUsers,
});
In the code above, there are almost all types of relationships that we can use in insertMany.
-
There is a
one-to-manyrelationship betweenusersandcountries, that is, thecountryfield receives anID, and after finding the relevantcountry, itspurefields are stored in theuser. On thecountryside, in two multiple lists, the user is stored once with ID sorted from last to first(usersfield) and once with age sorted from oldest to youngest(usersByAge). -
Also,
usershave amany-to-manyrelationship with thecitiesthey have lived in and receive a set of cityIDs, and after finding thosecities, thepurefields of each one are stored in an array calledlivedCities.On thecityside, thepurefields of the enteredusersare stored in theusersfield for eachcity. -
The
userhas anotherrelationshipwith thecity, which is aone-to-manyrelationship. In this way, theusersaves thecityhe likes the most in themostLovedCityfield. And on thecityside, the list of enteredusersis stored in the field oflovedByUser.
bfore execut main → user → addUsers:
executing main → user → addUsers:
after execut main → user → addUsers:
Pay attention that all changes are sent to the database with an aggregation pipeline.
You can find full example here and test the insertMany method in local computer.
The implementation of insertMany for the country is also very simple because no relationship is needed to create the countries, we will leave the implementation of this part of the code to you.
If you want to see a real insertMany code, you can see the code implemented for the benchmark here.
The interesting thing is that due to the correct definition of the relationship in Lesan, the implementation of the benchmark code with insertMany was very simple, while this task was a bit complicated in the rest of the platforms.
Also, the time spent for entering data in Lesan is interesting, because this time is very short due to insertMany.
Playground
First Encounter
When you first enter the playground, you will see 3 part :
Part One : Tabs
At the top of the page there are tabs that allow you to do different things at the same time without losing information. You can make and use as many tabs you need(2) with add button(1) and close them at any time with close button(3). By refreshing the page, the tabs information does not disappear and after the tab refresh the tabs are fully accessible.
Part Two: Sidebar
On the left side is the sidebar, with 3 select box that are used to select the service(1), Schema(2) and Action(3), respectively. It should be noted that the selection of Schema and act is inactive until the service is selected.
Second Sidebar
After selecting the service, Schema and act, another column is displayed, which includes 2 sections of set fields(1) and get fields(2). In the set fields, you fill in the values you need(1-1) and in the get field section you choose the values you want to get and also we either want the field to set the field equal to one or we do not want the amount to be zero(2-1). After completing the sections of the set fields and get fields set, by pressing the Send Button(3), the results we have had in the response section are shown in the response section.
Response Section
At the top of the response section, we have access to 3 button, copy Request(1), copy Response(2) and Run E2E Test(3) that send the request to the E2E Test modal that we will explain below.
Also we can see the status of the request who can be true with green light and false with red loght(4).
At the top-right of the body response we can access to the time of the request with took(5).
Part Three: Buttons
In this section we will see 6 buttons that we will explain below :
Before explain 6 buttons, Notice that in every modal we can use the close button(1) to close the modal.
Also we can use change size button(2) to see modal in full screen or window size.
Refetch button:
Pressing it all the data is renewed once.
Settings button:
Pressing that modal of settings open for us to see two parts of the Fetch Config(1) and the Set Headers(2).
In the fetch config section, we can set an Url(1) and press Apply Button(2) that we can bring the lesan to different addresses.
In the set headers we can also determine the key(1) and value(2). also we can press Add Header(3) button to add many new Key and Value and set them wit Apply(4) button.
History button:
By pressing History button, we enter the modal history in which we have access to all the Requests(1) as well as and Responses(2) the results.
In top-right of the Request section we can see the Date Of The Request and also in top-left of the Response we can see the Time Of Response.
In top-right of the every part of the request we can delete the this part with Delete button(5).
Also we can clean all the request by press the Dustbin Button(6).
In the request section we access to Model and Act(1) of the request and Show Button(2) to see the detail of the request and response.
We can hide the details with Hide button:
In the response section, we can see the Status Of The Response(1) that can be true or false and also we can reuse of the request with Use Button(2).
E2E Test button:
In E2E test modal, we see two section, section one include Five Button that the top-left of the modal and section two its be Eeach Sequence of the test.
We start with the section one, in this section we have five button include Add(1), Run E2E Test(2), Import(3), Export(4) and Help(5).
With Add Button we can create a new Sequence for test. we can add how much we need sequence for test.
With Run E2E Test Button we can run the test. we explain this after.
With Import Button we can import the pervious tests and reuse them.
With Export Button we can export existing tests for use them for anothe test.
And with Help Button we go to playground document that we can see how to work with E2E modal.
In each sequence, we can see 2 part, Set Test Body And Headers(1) and Set Repeat Time, Capture Variables(2)
Part 1 is a Set Test Body And Headers that we can write and set body and headers for test. also we can use the faker for test. for example you can see that we use faker for this sequense:
In Part two we can Set Repeat Time(1) of the test with + or - button or write number we want in input. also we can use Add Capture(2) Button for set how many capture we want to the sequence for test.
After press the Add Capture we can see a part that include two input, include set a variable name(1) that we can see an Example(2) to how fill this input and another input, is set a value for variable(3) that we can see an Example(4) to how fill this input.
Also we can set capture couple model.
We have four button in top-right of the each sequence test:
Duplicate Button(1) that we can duplicate sequence.
Move Buttuns(2)(3), with this buttons we can move the sequense to top or bottom.
Delete Button(4), with this button we can delete each sequence.
After write the sequences test, we can go to see the resulst of the each sequence test by click on the Run E2E Test Button and we see this:
First thing that we see is Back Button and second is Export Button at the top-left of the modal.
third one is a Information section that we can see all information of the sequence tests.
The Information section have three part, Requests(1),Times(2) and Captures Information(3).
Requests part include All Request Count(1) , All Request Time(2), All Success Request(3) and All Fails Request(4).
Times part include two section, Best and Worst. in each section we can see the Best/Worst request time, sequence number of the best/worst request that when click on number, we scroll to that sequence number, request number that include number of the request in sequence, model and act.
Captures Information part include every capture items that we set. in this part we can see the Key(1), Captured From(2), Value Of(2), Model(2), Act(2) and Captured Inside Sequnce Number.
After Information section, we can access every sequence that each of sequence have two part, Description(1) and Body Header(2).
Description have five part include Request(1) that include All Request Count, Success/Fail that show the how many of request is success/Fail, All Request Time and Avrage Time For Each Request, Best(2) and Worst(3) that include Best/Worst Time and request nmber, Capture Items(4) that include key,value,model,act,sequence number, Using Capture Items(5) that include key,captured from, value,act and sequence number.
Body Header have headers,body of the each sequence(1), number of sequence(2) at the top-right and change button(3) at the top-left.
When click on Change Button we can see and access to the Request(1) and Response(2) that in Request section we can see the pure request(3) and at the Response section we can see the body of the response and success status of Responsewhich the false or true(4).
At the top-right of the Response section we can see the time of the Respone(5).
At the Bottom-center, we can access to the pagination(6) to move on the Requests or write the specefic Request number to access the Request.
Also when click on change button(7) to go back to the Body Header and Description.
Schema button:
In Schema modal we have access to all the Schema project. For example, we can see the country,city and user.
Country have pure(1) and related relations(2).
And pure have _id(1), name(2), population(3), abb(4).
And Also related relations have cities asc(1), cities desc(2), cities by pop asc(3), cities by pop desc(4), capital city(5), users(6), users by age(7).
Also by hovering on question icon we can see the relations.
We see the country, lets see the city. city have pure(1), main Relation(2), related relations(3).
Pure have _id(1), name(2), population(3), abb(4).
main relations have country and country have _id, name, population and abb.
Also by hovering on question icon we can see the relations.
And related relations have users(1) and loved user(2).
Users have _id, name, age.
Act button:
Like Schema modal in Act modal , we have access to all the Act of the project.
Act have main and main have country(1), city(2), user(3).
And country have add country(1), update country(2), add countries(3), get countries(4), delete country(5).
Let see the add country. we can see the set(1) and get(2).
Set have name(1), population(2) and abb(3).
And get have _id(1), name(2), population(3), abb(4), users(5).
Request flow in Lesan
We only accept two types of HTTP methods in Lesan:
- GET
- POST
GET Requests:
We accept two models of GET requests:
-
Requests sent to serve a
staticdocument.
In order to receive astaticdocument with aGETrequest, you must first allow itspathto Lesan, for this you only need to add the following settings when calling therunServerfunction:coreApp.runServer({ staticPath: ["/pictures", "/videos"] });The
staticPathkey receives anarrayofstringsNow all the files in the
picturesorvideosfolder will be accessible by sending aGETrequest, for example:https://www.xyz.com/pictures/avatar.png -
Requests sent to receive
playground staticdocuments or access to theplaygrounditself.
In order to access theplayground, you must set theplaygroundentry in therunServerfunction equal totrue.coreApp.runServer({ playground: true });The
playgroundkey receives abooleanvalue.Now you can access the
playgroundby sending aGETrequest to an address similar tohttp://localhost:1367/playground.
Note that the following addresses will be accessible together with theplaygroundand will send the necessarydatato run theplayground:- /playground/static/index.css
which sends the necessarystylesfor theUIin theplayground. - /playground/static/bundle.js
which sends aJS bundleof all the codes needed to run theplayground. - /playground/static/get/schemas
which sends twoJSONdata,schemasandacts, which contain all the information we need in theplaygroundto sendrequeststo theserver.
- /playground/static/index.css
POST Requests:
We accept two models of POST requests:
- Requests sent to
receive datafrom theserver(in fact, these requests are the main requests sent to Lesan). - Requests sent to
uploada document.
Receive data
To receive data from the Lesan server, you must send a POST request to the final address of Lesan.
In the body of this request, must be an object in JSON format with the following keys:
- The
servicekey is used to select one of themicroservicesset on the application. This key is optional and by default the value ofmainis placed in it. - The
modelkey is used to select one of theModelsadded to the application. - The
actkey is used to select one of theActsadded to the application. - The
detailskey is used to receive data to be sent from the client side along with data to be delivered to users. This key has two internal keys calledgetandset, we talked a little about it before.set: It contains the information we need in theActfunction.get: Contains selected information that the user needs to be returned. This selection is based onzeroorone. Therefore, we can pass this object directly to MongoDBprojection.
An example of this JSON object is as follows:
{
"service": "main",
"model": "country",
"act": "addCountry",
"details": {
"set": {
"name": "Iran",
"population": 85000000,
"abb": "IR"
},
"get": {
"_id": 1,
"name": 1,
"population": 1,
"cities": {
"name": 1,
"population": 1,
}
}
}
}
This request finally reaches the function we specified for Act to extract the necessary information from it and return the information requested by the user.
If you remember, we set up each Act as follows:
coreApp.acts.setAct({
schema: "user",
actName: "addUser",
validator: addUserValidator(),
fn: addUser,
preValidation: [setUser, checkLevel],
preAct: [justAdmin],
validationRunType: "create",
});
Upload documents
For uploading a document you should send a POST request to Lesan endpoint.
Lesan vs GraphQL
All the advantages of Lesan
راجع به فانکشنال پروگرمینگ حتما بگم و اینهارو توش توضیح بدم :
مثلا وقتی یه چیزی newModel میشه دیگه همهی فانکشنهای توی odm براش در دسترس هست با یه ساینتکس قابل فهم
بعد راجع به اسکیماها و اکتها هم همین فرایند newModel رو بگم
بعد راجع به بعضی چیزای دیگه مثل preAct و preValidation و حتی فانکشنهایی که برای ولیدیشن میدیم که فانکشن هست هم توضیح بدم که یعنی میتونه اونجا از hof یا curriyng استفاده کنه
Implement an advanced project
Be patient, the document will be written soon...
General description
Be patient, the document will be written soon...
nx configuration
Be patient, the document will be written soon...
Folder Structure
Be patient, the document will be written soon...
Microservice or Monolithic
Be patient, the document will be written soon...
Manage replica
Be patient, the document will be written soon...
Receive data
One of the biggest challenges for implementing data retrieval capability in Lesan was when the customer requested dependencies of a schema with more than two levels of penetration in depth.
Let us review the previous methods before explaining Lesan's method.
Previous methods and the main challenge
Many of the current structures for interacting with server-side applications require multiple requests to be sent to the server to receive a set of information related to each other. Also, due to the mismatch between the sent information and the customer’s needs, much of the sent information will be unused and will waste resources and bandwidth. The first problem is known as under-fetching, meaning that the received information is less than what is needed and requires a resend request to the server. This causes the number of server-responsive requests per unit time to decrease and its processing load to increase.
The second problem is known as over-fetching, meaning that the customer only needs a specific part of the information, but the server sends other data in a schema regardless of their needs. This problem causes additional bandwidth occupation and increases data exchange time. Facebook has introduced a new concept called GraphQL to solve these problems to some extent. This idea is very creative and practical but also comes with problems and challenges.
GraphQL Problems
Given that GraphQL is a language for describing data models and how to request them, in addition to the implementation of the usual server program, there is also a need for a dedicated implementation of GraphQL. This violates one of the fundamental principles of programming, which is "Don't repeat yourself" (DRY), and forces developers to learn the descriptive language specific to GraphQL, which is GQL.
# This Book type has two fields: title and author
type Book {
title: String # returns a String
author: Author # returns an Author
}
type Mutation {
addBook(title: String, author: String): Book
}
After the data model is described in GraphQL, for each request sent to the server, there is a need to parse and analyze the descriptive texts, which also has overhead processing.
One of the things that is managed in GraphQL is sending data along with their relationships. However, the depth and type of relationships requested are not easily manageable, which causes non-optimal requests to be sent to the server.
GraphQL is a general-purpose descriptive language and has not been optimized for a specific database. In fact, this tool has no view of what implementation has been done in other structures and certainly no specific optimization has been made on it.
Sending a request in GraphQL is not in common and popular formats such as JSON, and this factor makes sending a request with many current tools a complex matter.
Also, in GraphQL, the common standards for requests have not been used on the web and new concepts such as query, mutation, etc. have been created (this has both advantages and disadvantages).
Lesan's solution for how to communicate between the server and the client
The idea of connecting client-side nodes to the backend in Lesan is inspired by GraphQL, but in Lesan we tried to make this connection simpler and more practical so that we can solve the problems mentioned above.
We focused on three points to do this:
- We do not add any language to the client and server (such as
GQLlanguage in GraphQL). - Instead of implementing complex logic to
filterfields selected by the user, we use the logic implemented within databases (hereAggregationin MongoDB). Because algorithms implemented within databases have more scalability and efficiency due to direct data communication. - We store all relationships in data as
embeddedto reduce the amount of requests sent to the database. - Let’s create descriptive information for different types of data and how they are embedded in
server-sidelogic so that we can create more efficient data models in theNoSQLstyle. We can also simplify data management in the database without changing the information.
Proposed Method
In the first step, we tried to organize the data structure because we intended to use NoSQL databases and at the same time we needed to have structured data like SQL both at runtime and during development to simplify the management of embedded data as much as possible.
We divided the relationships into two types of direct (mainRelation) and indirect (relatedRelation) for embedding. We stored direct relationships completely and stored indirect relationships only in the number that could be returned in the first request (first pagination). Each direct relationship can create several indirect relationships.
We exactly left the data retrieval management to the client as MongoDB had defined it, that is, sending an object with a key (data name) and a value (0 or 1) to the client.
We found a creative way to produce Aggregation Pipelines in MongoDB so that fewer documents are requested when receiving data as much as possible.
We allowed the client to see all the models and functions written on each model and choose them in the same object sent.
We allowed the client to see the output of each function written for each model along with the exact depth of its relationships that had previously been determined by the server-side programmer in a type-safe manner to make it easier to create the sent object.
We created an ODM to simplify the process of receiving data along with its relationships and also to manage the repetitions created from embedded relationships within this ODM so that the server-side programmer writes less code.
We prioritized input data validation and created a process for the server-side programmer to create a validator for each function written on each model so that we can run that validator before executing the function. In this validator, recursive data management along with the depth of penetration into the relationships of each model must be explicitly specified.
Let us clarify the issue with an example:
Let’s consider a schema named country with the following fields:
id;
name;
abb;
description;
geoLocation;
capital;
provinces;
cities;
And also a schema for the province with the following fields:
id;
name;
abb;
description;
geoLocation;
center;
country;
cities;
And also a schema for the city with the following fields:
id;
name;
abb;
description;
geoLocation;
country;
province;
The country and province field in the city model and country field inside province model are of type city and province we compeletly embed them. This form of relationship is a direct relationship and we call it mainRelation, which ultimately is a single object of the pure city and province fields (mainRelation can also be multiple and be an array of objects) which is defined as follows:
const cityRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
},
province: {
optional: false,
schemaName: "province",
type: "single" as RelationDataType,
},
};
const provinceRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
},
};
All province relationships do not end here. This schema also has a relationship with the city. With one simple question, we can complete the relationships:
Do these relationships that we have defined have an effect on the other side of the relationship?
Answer: yes, all these relationships will have effects on the other side as well. So we complete them like this:
const cityRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
}
},
province: {
optional: false,
schemaName: "province",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
}
},
};
const provinceRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
provinces: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
}
},
};
If you look carefully, a relatedRelation is defined for each relationship, which stores a limited number of this relationship on the other side.
For example, we store 50 cities in the country according to the ID of the cities and in descending order. And in the same way, we have done this for the province.
Now we have reached almost the same form as we defined schemas at first. The only remaining relationship is the relationship of capital in the country.
We can define as many relatedRelations as we want for each direct relationship(mainRelations) we define.
So we can add a new relatedRelation in the definition of city relationships where we have linked the country to the city:
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
capital: {
type: "single",
},
}
Above we have only said that there is another relationship between city and country that a city can be the capital of a country. That is, the relationship is defined as one-to-one, unlike the relationship between country and cities, which is one-to-many. The relationship defined for the center of the province is exactly the same.
The complete and final form of relations is as follows:
// ----------- Direct and Indirect relations for city
const cityRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
capital: {
type: "single",
},
}
},
province: {
optional: false,
schemaName: "province",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
center: {
type: "single",
},
}
},
};
// ----------- Direct and Indirect relations for province
const provinceRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
provinces: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
}
},
};
We also define the rest of the fields that are not related to other schemas and are not actually a database relationship as pure fields.
const countryPure = { name: string(), abb: optional(string()), ... }
Now, when creating a new document, whether it is a city document or a province document, you must also give it the relationships that are not optional (i.e. the ID of the relevant country) and on the other hand specify what effects this new document will have on the given relationship.
For example, if we create a new city, will this city be added to the list of cities of the respective country or not, and will it be selected as the capital of that country or not?
Read the Getting Started section for more information.
It is also worth mentioning that we have not defined any relationship for the country. Only the relatedRelations of the city and the province have defined the relationship for the country.
Don't worry, you can easily see all the relationships, both mainRelations and relatedRelations, in Playground.
It is worth noting that we save this form of defining schemas in the integrated runtime in an object called Schemas. We will discuss its structure further. But what is stored in the database is the initial form that we showed earlier. It means for the country:
id;
name;
abb;
description;
geoLocation;
capital;
provinces;
cities;
The amount of pure fields is known. And the value of the fields that are of the relation type of schemas will be in the form of objects or array of objects of the pure type of that relation. That is, for example, for the country:
{
id: "234fwee656",
name: "iran",
abb: "ir",
description: "a big country in asia",
geoLocation : [ [12,4], [32,45], ... ],
capital : {
id: "234fwee656",
name: "tehran",
abb: "th",
description: "the beautiful city in middle of iran",
geoLocation : [ [12,4], [32,45], ... ]
},
provinces : [{
id: "234fwee656",
name: "tehran",
abb: "th",
description: "one of the irans provinces",
geoLocation : [ [12,4], [32,45], ... ]
},
{
id: "234fwee656",
name: "hamedan",
abb: "hm",
description: "one of the irans provinces",
geoLocation : [ [12,4], [32,45], ... ]
},
... til to end of the provinces
}],
cities : [{
id: "234fwee656",
name: "tehran",
abb: "th",
description: "the beautiful city in middle of iran",
geoLocation : [ [12,4], [32,45], ... ]
},
{
Id: "234fwee656",
name: "hamedan",
abb: "hm",
description: "one of the irans cities",
geoLocation : [ [12,4], [32,45], ... ]
},
... til to end of the number limit for the first paginate
}],
Now the user can filter and receive all the fields of a schema along with the first depth of its relations by sending only one request to the database.
This request is performed based on the process of projection in MongoDB according to the values of fields being one or zero. Without our framework having any involvement in this process. And without us writing an additional layer to filter the requested fields in it. (The process and form of this request will be explained later.)
If the lower fields of a country’s schema are requested in a request, not only all the requested information will be received and returned to the user with one request to the server but also with one request to the database.
If the following fields are requested from the schema of a country in a request. Not only with a single request to the server but also with a single request to the database, all requested information will be received and returned to the user:
// getCountry REQUEST
{
id: 1,
Name: 1,
abb: 1,
decsription: 1,
capital: {
id: 1,
name: 1,
abb : 1
},
provinces: {
id :1,
name : 1,
description : 1
},
cities: {
id : 1,
name : 1,
abb : 1
}
}
If a user penetrates more than one level of depth, what should be done? For example, if they request provinces for a country, they may also want its cities from within the provinces.
// getCountry REQUEST
{
id: 1,
Name: 1,
abb: 1,
decsription: 1,
capital: {
id: 1,
name: 1,
abb : 1
},
provinces: {
id :1,
name : 1,
description : 1,
cities: {
id : 1,
name : 1,
abb : 1
}
},
cities: {
id : 1,
name : 1,
abb : 1
}
}
Let’s examine what happens in SQL databases before we explain the Lesan framework solution:
-
First of all, we run a query to find the
country, because we have the countryID, we run anindexedquery. -
After that, we run a query to find the
capital, because we have itsIDstored in the country, we run anindexedquery. -
Then we send a query to find the first paginate of
provinces. If we have stored theIDof all the provinces of a country inside it, we run an indexed query. Otherwise, we must send annon-indexquery with the country ID filter found. -
Continuing with the example, if we had found
30of the first paginateprovinces. We should send anon-indexquery with a provinceIDfilter for each one on each city and find the first paginatedcitiesfor each of the provinces. (For example,50for each province, which means50times30) -
Finally, to find the first paginate
citiesfor this country too, we need to send anon-indexquery with theIDfilter of the foundcountryon the city table
You saw that the process was very complicated in SQL, now let’s see how the same process is done in Lesan.
In the previous section, we mentioned that to get a country along with the first depth of its relationships (i.e., capital, provinces, and cities), we only send an indexed query to the schema of the country and receive all the information.
Now we only need to receive information about cities for each province.
To do this, while we have access to the information of the provinces, we send an indexed query to receive the provinces again.
Because of the concept of relations in Lesan, we are sure that the information of cities is stored within provinces. Therefore, by receiving the provinces again, we will also receive the information of cities.
This will have two advantages for us. First, instead of sending a non-index query to the city, we send an index query to the province because we have received the province IDs in the first query.The second advantage is that instead of receiving a large number of cities, we have only received a few provinces. (For example, in SQL, the number of requested documents from the database is equal to 1 + 1 + (30 * 50) + 50. But in the Lesan method, only 1 + 35 documents have been requested.)
Now imagine what would happen if more depth and relationships were requested? This is the Achilles' heel of projects written with GraphQL.
Why duplicate data?
As you noticed in the above example, if we can store all the dependencies of a table inside it, we can significantly reduce the number of requests sent to the database. This number is remarkably large. For example, in one of the best cases, if we have a table with 10 dependencies, each dependency is related to 10 other tables and all relationships are many-to-many. If we want to receive a list of 50 items from that table along with 2 steps of penetration into its relationships with one request, in SQL we should send 50 * 10 * 50 * 10 which is equivalent to 250000 (two hundred and fifty thousand) requests sent to the database. But in Lesan all this data is collected with only 50 * 10 which is equivalent to 500 requests sent to the database.
The Ratio Of Creation And Update To Data Retrieval
Imagine a news database. We need a table for the authors and another table for the news written. Usually, at the end of each news, the name and some information of the author of that news are also included. If we place the information we need for the author of that news inside the news at the time of creation, we will not need to send a separate request to the database to receive the information of the author of that news when reading each news. But the problem arises when the author updates their information. For example, if they change their name from Ali to Ali Akbar. In this case, we have to update all the news written by that author. If this author writes an average of 10 news per day and works on this news website for more than 5 years, at least 18250 documents in the database must be updated. Is this cost-effective? In general, and in most cases, it can be cost-effective because news can be read more than a few thousand times a day and on the other hand, each author only changes their information once a year. Therefore, updating 18250 documents once a year is much less expensive than reading information from two different tables millions of times a day. Moreover, we have created a different solution for updating these repetitions called QQ, which updates them based on the amount of hardware resources used by the server side in different time periods and based on the value of the data. This process will be fully explained later.
Why noSQL?
As you have seen, data duplication reduces the number of multiple requests to the database, which affects both the speed of receiving data and the way SSG content is created. In addition, the number of methods for receiving embedded data in these databases (especially aggregations in Mongodb) makes managing and filtering this data easier.
Why Mongodb?
We had two ways to achieve the best performance:
-
We would generally design a
databasefrom scratch to achieve at least the following points:-
give what we receive from the customer on the
client sideto the database so that we do not have any additional processing for analyzing the request. -
Embedall relationships at least to one level. -
In order to receive data from the database with any degree of penetration into the depths of relationships with only
onequery
-
-
Among the available databases, let’s go for one of them and bring all our structures in line with it. Implementing a new database, although attractive, is infinitely time-consuming and requires a lot of time and cost to mature and become usable. Among the available databases,
Mongodbmet all our needs for at least three reasons:- Mongodb is a
NoSQLdatabase and that’s exactly what we were looking for. - The process of selecting recursive fields from this database, namely
projection, is a standardobjectwith thefield namekey and a value ofzero or one, and we could ask the sameobjectfrom the customer on theclient sidewithout any processing and send it to the database. - And the key point was the creative idea of
aggregation, because we could penetrate into the depths of relationships by sending onlyonerequest for any amount of data we wanted. It was enough to create helper functions for building requestpipelinesin this way.
- Mongodb is a
Lesan Pipeline example
Let’s examine how to create a Pipeline for filtering and selecting data in Mongodb aggregations with an example:
Consider the schemas we had for the country, province, and city tables, and now we want to receive a list of 25 provinces along with the country and cities of that province with one request. The Pipeline we create will be like this (the Pipeline that needs to be created for Lesan will be slightly different, which we will discuss later):
provinces.aggregation([
{
$lookup: {
from: "country",
localField: "country._id",
foreignField: "_id",
as: "country",
},
},
{ $unwind: { path: "$country", preserveNullAndEmptyArrays: true } },
{
$lookup: {
from: "city",
localField: "cities._id",
foreignField: "_id",
as: "cities",
},
},
{
$project: {
_id: 1,
name: 1,
abb: 1,
country: { _id: 1, name: 1, abb: 1 },
cities: { _id: 1, name: 1, abb: 1 },
},
},
]);
Now if we create the same Pipeline for a project that has been created with Lesan, it will be as follows:
states.aggregation([
"$project": {
_id: 1,
name: 1,
abb: 1,
country: { _id: 1, name: 1, abb: 1 },
cities: { _id: 1, name: 1, abb: 1 }
}
]);
Yes, we send an empty Pipeline because all relationships are embedded in Lesan and we only send the projection to select the requested fields. But what happens if we penetrate one more level deeper into the relationships? For example, let’s request the provinces of countries again from within the countries and request the country of that city again from within the cities (it is true that this example is unrealistically funny, but we implement it only for comparison so that the concept can be easily conveyed). In the usual case, the Pipeline will be like this:
states.aggregation([
{
$lookup: {
from: "country",
localField: "country._id",
foreignField: "_id",
as: "country",
},
},
{ $unwind: { path: "$country", preserveNullAndEmptyArrays: true } },
{
$lookup: {
from: "state",
localField: "country.states._id",
foreignField: "_id",
as: "country.states",
},
},
{
$lookup: {
from: "city",
localField: "cities._id",
foreignField: "_id",
as: "cities",
},
},
{
$lookup: {
from: "country",
localField: "cities.country._id",
foreignField: "_id",
as: "cities.country",
},
},
{ $unwind: { path: "$cities.country", preserveNullAndEmptyArrays: true } },
{
$project: {
_id: 1,
name: 1,
abb: 1,
country: { _id: 1, name: 1, abb: 1, states: { _id: 1, name: 1, abb: 1 } },
cities: { _id: 1, name: 1, abb: 1, country: { _id: 1, name: 1, abb: 1 } },
},
},
]);
But the project created with Lesan will create a Pipeline as follows:
states.aggregation([
{
$lookup: {
from: "country",
localField: "country._id",
foreignField: "_id",
as: "country",
},
},
{ $unwind: { path: "$country", preserveNullAndEmptyArrays: true } },
{
$lookup: {
from: "city",
localField: "cities._id",
foreignField: "_id",
as: "cities",
},
},
{
$project: {
_id: 1,
name: 1,
abb: 1,
country: { _id: 1, name: 1, abb: 1, states: { _id: 1, name: 1, abb: 1 } },
cities: { _id: 1, name: 1, abb: 1, country: { _id: 1, name: 1, abb: 1 } },
},
},
]);
If you notice, we have no Pipeline to get the provinces inside the country because we know that in Lesan all relationships are stored in an embedded way and if we have the country with its relationships, we have definitely stored the last 50 provinces of each country inside it in an embedded way. So while we store the country as Pure and without relationships in the axis of each province and have it, we receive it again with a Pipeline.Now, instead of 50 * 50 + 50 documents (if we have requested 50 provinces per country by default), we only receive 50 documents (the country where the provinces are embedded). Now imagine that if, for example, the last registered restaurants in each country were also requested in this query, usually 50 * 50 + 50 * 50 + 50 documents would have to be requested, but with Lesan, the same document received for each country will also have a list of the last 50 restaurants and we only request those 50 documents instead of 5050 documents. And as each relationship is added, these numbers will get further apart from each other.
The same policy applies to cities in relation to the country. The only difference is that here 50 provinces are requested, each province wants the last 50 cities and each city has a relationship with a country that has been requested and we have to receive 50 * 50 + 2500 documents which with Lesan we have reduced this number to 50 * 50 documents.
Another point to note is that the Pipeline created in the last stage in Lesan is very similar to the Pipeline created in the normal state in the first stage, only the Projection field in these two Pipelines is different.
Queuing data changes
We faced a problem with repeated data updates and said that we have created a process to send data to smaller parts for updates in different time periods. In the same example of the news agency mentioned above, we can divide document updates into several sections based on different criteria. For example, we can update newer news (e.g., the past 2 months) immediately and put older news in a queue for updating. For this purpose, we have created an entity language called Query Queue or QQ, which is an object of all commands that are to be sent to the database for data change.
The existence of this object allows us to manage updates. For example, if there are millions of updates to be made, we divide them into smaller parts. Depending on the amount of server hardware resources involved, we send a small part for updating to the database. We check the server hardware resources again and if the server is not involved in heavy processing, we send another part for updating.
In this classification, in addition to dividing the number of requests, we can also reduce the number of requests by comparing changes. For example, the author above changed his name from Ali to Ali Akbar once and changed his interests from reading to reading and sports a few hours later. Now we have two commands for data modification that can be sent to the database together. Therefore, we can merge these requests and then send them.
If we consider this classification as a compartment for storing data modification commands, we can also use it to verify the consistency of repeated data. And if for any reason any part of the data encounters problems, we can use this compartment to find and correct those problems.
We can also use artificial intelligence to manage changes in this queue, which will be explained in the relevant section.
in-memory DB
Document is comming soon ...
CSR, SSR or SSG content
Content on the internet is usually divided into three parts: CSR or Client-Side Rendering, SSR or Server-Side Rendering and SSG or Static Site Generation. CSR content is usually created by JavaScript frameworks on the client side, which is why search engines cannot easily understand them. SSR content is processed on the server side and is easily understandable by search engines. However, to create this content, the server must be involved in processing them each time. The best contents for publishing on the web are SSG contents because they are completely understandable by search engines and the server will not be involved in processing their data. Static contents can be placed on CDNs (Content Delivery Networks) and requests for this content can be returned from the stored location on the network before it reaches the server. To understand the popularity of SSG content, you can refer to popular JavaScript frameworks such as Gastby and NextJS.
One of the biggest problems with creating SSG content is the complexity of the data model. As the number of requests for data from the database increases, the amount of content that can be converted to SSG decreases. Because to create SSG content, the number of requests to the database must reach zero in order to produce static content.
Lesan’s framework has simplified the conditions for creating SSG content by reducing the number of requests to the database.
In addition, Lesan only updates SSG content when a data has changed. Unlike the process that is usually used in NextJS or Gastby, which uses time periods to create and update SSG content due to lack of awareness of data changes. In this way, a specific time is determined in advance (for example, one day) to generate SSG content, and when that time ends, they send a request to the server to receive the content again and convert it to SSG and repeat this process. This cycle has two major problems:
- First, it is possible that the data has
not changedand an unnecessary processing task is imposed on the server which can cause problems if thenumberof these requests on the server increases. - And the second problem is that it is possible for the content on the server to change and it may be
necessaryto quickly update that content everywhere, including places whereSSGcontent is stored. But in current processes, we have towaituntil the time we have set in advance ends and sendanotherrequest to the server to update theSSGcontent.
Returning to the example of a news agency, if this website intends to convert its news to SSG content, it will face both of the above problems. On the one hand, the process of generating SSG content may be performed for many news items that have not changed, which creates an unnecessary processing load for the server. On the other hand, it is possible that a news item has been mistakenly converted to SSG content and the news agency wants to remove it quickly, but we have to wait until the end of the specified time for that content to disappear. Also, someone has to request this news after the end of this time. For these two simple reasons, many websites prefer to process their content in SSR form. But how can we create SSG content only when data changes in the main database? This can be easily done with Lesan.
Penetration Into Depths
The next issue is how to penetrate the depths. In GraphQL, you have very complex solutions to manage it, but in Lesan, this issue does not exist by default because in projects written with Lesan, the server-side programmer must determine the depth of the relationships of each accessible point from the program before writing any accessible point. Let’s take a look at implementing a small project with Lesan to clarify the matter.
In Lesan, starting a project will be like this:
- First of all, we create an app with the
Lesanframework, for example (this sample is written in TypeScript):
const ecommerceApp = lesan();
- We write the
modelwe want for the software using thepureandrelationsobject and add it to ourODMapplication. Like this (consider the same information we mentioned in the above example forcountryandcities):
const cityPure = {
_id: optional(union([
instance(ObjectId),
size(string(), 24),
]));
name: string(),
geometries: optional(
object({
type: string(),
coordinates: array(array(number())),
})
),
abb: optional(string()),
description: optional(string()),
};
const cityRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
cities: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
citiesByPopulation: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "population",
order: "desc" as RelationSortOrderType,
},
},
capital: {
type: "single" as RelationDataType,
},
},
},
};
const cities = coreApp.odm.newModel(
"city",
cityPure,
cityRelations,
);```
- Now we create a `function` for this `model` and add it to our application `acts` (in fact, this `act` is available to the `client-side` user to call it) like this:
```ts
const getCitiesFn: ActFn = async (body) => {
const {
set: { page, take, countryId },
get,
} = body.details;
const pipeline = [];
pipeline.push({ $skip: (page - 1) * take });
pipeline.push({ $limit: take });
countryId &&
pipeline.push({ $match: { "country._id": new ObjectId(countryId) } });
return await cities
.aggregation({
pipeline,
projection: get,
})
.toArray();
};
- Now we write a
validatorfor this function as follows:
const getCitiesValidator = () => {
return object({
set: object({
page: number(),
take: number(),
countryId: optional(size(string(), 24)),
}),
get: coreApp.schemas.selectStruct("city", 2),
});
};
- As you can see, the
validatorfunctiongetCitiesValidatorhas anobjectwith keyssetandget. Thesetkey is used for information that we need tofilterandlimitcities, and as you saw ingetCitiesFn, this information has been used. But the value of thegetkey is what we need to penetrate into its depth. This value must be anobjectof a model that accurately specifies the degree of penetration into each of therelationshipsof thatmodel(here incitymodelr. Here thegetkey is generated by a function calledselectStruct. This function has two inputs. The first input is the name of themodelfor which we want to generate thisobject, and the second input specifies thedegreeof penetration into eachrelationship. The second input of theselectStructfunction can be entered as anumberor anobject. If entered as anobject, thekeysof this object must be thenamesof the selected modelrelationships, and its value can again be anumberor anobjectof its key relationships. Such as:
{ country : { provinces: 2 }, cities: 1 }
As a result, an object will be produced as follows :
{
_id: enums([0,1]),
name: enums([0,1]),
abb: enums([0,1]),
description: enums([0,1]),
geoLocation: enums([0,1]),
country: {
_id: enums([0,1]),
name: enums([0,1]),
abb: enums([0,1]),
description: enums([0,1]),
geoLocation: enums([0,1]),
provinces: {
_id: enums([0,1]),
name: enums([0,1]),
abb: enums([0,1]),
description: enums([0,1]),
geoLocation: enums([0,1]),
},
cities: {
_id: enums([0,1]),
name: enums([0,1]),
abb: enums([0,1]),
description: enums([0,1]),
geoLocation: enums([0,1]),
},
},
province: {
_id: enums([0,1]),
name: enums([0,1]),
abb: enums([0,1]),
description: enums([0,1]),
geoLocation: enums([0,1]),
cities: {
_id: enums([0,1]),
name: enums([0,1]),
abb: enums([0,1]),
description: enums([0,1]),
geoLocation: enums([0,1]),
}
}
}
This object is used for validating the data sent from the client to the server. With this method, we have accurately and separately determined the depth of penetration for each function. If you notice, the key get is exactly similar to projection in MongoDB and after validating this object, we send it to the database without any changes to receive the data. Besides, we can inform the customer side of all the details of the written requests on the server. As a result, even before sending a request on the customer's side, we can understand what information needs to be sent and what information we can receive. Finally, we add this function and validator to our software with the setAct function.
ecommerceApp.acts.setAct({
schema: "city",
actName: "getCities",
validator: getCitiesValidator(),
fn: getCitiesFn,
});
Microservice
There are different processes for implementing microservices around the world. However, in general, each service must have a separate and unique logic and data model with the least amount of dependency on other services. Therefore, the team working on each service can think independently about developing their software.
Ultimately all services want to send and/or receive information from other services. If the data models are very different from each other, another separate logic must be written for each data to be coordinated. In some microservice development models, it is preferred that the data model designed for services be as consistent as possible because different services can have many common features.
Consider an ERP as an example. We have a service for accounting, a service for warehousing, and a service for running a store. All three of these services work with an entity called a product. Changing the product entity in any of these services affects the other services as well. For example, if a product is sold, the warehouse must be notified so that it can replace it in the store in time, and accounting must also have sales information to do its job. Therefore, if the product entity is consistent across all three services, writing server-side logic will be easier. In this type of microservice development, there is usually a senior programmer who knows about all three services and designs their models. This procedure will somewhat reduce the independence of services but ultimately create less trouble for development.
Another problem that arises in microservices is the lack of data consistency. Take the same ERP example. If a product is sold but not registered in the accounting service or removed from the warehouse but not registered in the store, it will cause data inconsistency. To reduce these inconsistencies, a tool called a message broker is recommended. With this tool, all messages that are supposed to be exchanged between two services are sent to an independent service and stored there. If a service does not work properly, messages are not lost and as a result, data always remains consistent and coordinated.
The next issue in microservices is the distribution of server-side hardware resources. If we have a large number of services, managing the processors of these services will be complicated and we will need many tools to analyze requests so that we can know the amount of hardware resources involved in running each piece of code. In addition, the exchange of messages between services is also an additional processing load that must be performed. Also, the repetitions created from the data require not only additional space for storage but also the need to write parallel logic because each logic processes a separate data. However, the main problem in distribution of processing load arises at the time of horizontal-distribution. If the data is integrated in one place, managing the distribution of processing load will be simple but when each service has its own database and processing load and at the same time needs other service data, distribution of processing load for it requires considering these dependencies. Given the limitations of vertical-distribution, removing obstacles to horizontal-distribution is essential. Lesan offers small solutions for implementation of microservices that can reduce their implementation complexity. It also proposes a new process that has an architecture between microservices and monoliths that will be explained next.
Lesan solution
As mentioned in the above section, Lesan is a collection of models and acts created for those models. But in fact, these models are placed inside another object called main or any other service that is active in this process. All the information available in the main key can be obtained with the getMainActs function. All functions created with the setAct function are stored by default inside the main object. But there is another function called setService. With this function, we can add another service to our project. After adding a new service, we can access it by sending an object from the client side that has a service key. The setService function has two inputs: the first input is the name of the service and the second input can be obtained in two ways:
-
As a
string, which is actually the address of access to anotherservice. -
As another
object, which is actually the output of thegetMainActsfunction in anotherservice.
If the second input is a string, http or rpc methods are used to communicate with it, and if it is an object, that other service comes up as a plugin on this current service. As a result, we can manage a project both as a monolith and as a microservice at the same time.
A suggestion for microservices (an architecture between microservices and monolith)
To create a model in Lesan, it can be expanded based on another extensive model so that it has nothing more than that and can only have some of its keys. Therefore, we can create a database for all services along with all models that have all the necessary keys in all services. Then each service defines its own model separately based on the integrated database model and takes some of its required keys from that main model. Given the way models are written in Lesan (model implementation based on a schema validator), we can have a common database and at the same time each service can validate its own data based on the expanded model of the comprehensive and original model. Also, it is possible to move models and acts written in Lesan, and we can easily have each service’s database separately or simultaneously with other services. On the other hand, NoSQL databases are usually schemaless and any shape or form can be given to data in the database. Lesan is currently developed based on MongoDB. If we can put all service models in a comprehensive database, we can prevent data duplication and we no longer need to write parallel logic to manage this duplication. In addition, we do not need any tools for synchronization or writing separate logic to standardize data. Finally, we can also take advantage of the ease of horizontal-distribution of NoSQL databases without worrying about data consistency. Consider the following example:
Suppose we have several services named core - ecommerce - blog and so on, all of which have a model for users named user. We can create a model of the user that has all the fields of all these services and share it among all services, like this:
import {
any,
array,
boolean,
date,
enums,
InRelation,
number,
object,
optional,
OutRelation,
string,
} from "../../../deps.ts";
export const level = enums(["Admin", "Editor", "Author", "Ghost", "Normal"]);
export const gender = enums(["Male", "Female"]);
export const addressObj = object({
addressId: string(),
countryId: string(),
stateId: string(),
cityId: string(),
addressText: string(),
location: optional(
object({
type: string(),
coordinates: array(array(number())),
})
),
});
export const pureUserObj = {
_id: optional(any()),
name: string(),
age: number(),
lastName: string(),
phone: number(),
gender: gender,
birthDate: optional(date()),
postalCode: string(),
level: array(level),
email: optional(string()),
isActive: optional(boolean()),
creditCardNumber: optional(number()),
address: optional(array(addressObj)),
};
const userRelations = {
country: {
optional: false,
schemaName: "country",
type: "single" as RelationDataType,
relatedRelations: {
users: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
}
},
province: {
optional: false,
schemaName: "province",
type: "single" as RelationDataType,
relatedRelations: {
users: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
}
},
city: {
optional: false,
schemaName: "province",
type: "single" as RelationDataType,
relatedRelations: {
users: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
}
},
};
Now, for example, we create a model of the user for ecommerce as well and write its fields in such a way that it does not have anything more than the shared user model, like this:
import { ecommerceApp } from "../../../../../apps/ecommerce/mod.ts";
import {
any,
array,
boolean,
date,
InRelation,
number,
optional,
OutRelation,
string,
} from "../../../deps.ts";
import {
addressObj,
gender,
level,
pureUserObj as sharedPureUserObj,
userRelations as sharedUserRelations,
} from "../../shared/mod.ts";
const userPureObj: Partial<typeof sharedPureUserObj> = {
_id: optional(any()),
name: string(),
age: number(),
lastName: string(),
phone: number(),
gender: gender,
birthDate: optional(date()),
postalCode: string(),
level: array(level),
email: optional(string()),
isActive: optional(boolean()),
creditCardNumber: optional(number()),
address: optional(array(addressObj)),
};
const userRelations: Partial<typeof sharedUserRelations> = {
// country: {
// optional: false,
// schemaName: "country",
// type: "single" as RelationDataType,
// relatedRelations: {
// users: {
// type: "multiple" as RelationDataType,
// limit: 50,
// sort: {
// field: "_id",
// order: "desc" as RelationSortOrderType,
// },
// },
// }
// },
// province: {
// optional: false,
// schemaName: "province",
// type: "single" as RelationDataType,
// relatedRelations: {
// users: {
// type: "multiple" as RelationDataType,
// limit: 50,
// sort: {
// field: "_id",
// order: "desc" as RelationSortOrderType,
// },
// },
// }
// },
city: {
optional: false,
schemaName: "province",
type: "single" as RelationDataType,
relatedRelations: {
users: {
type: "multiple" as RelationDataType,
limit: 50,
sort: {
field: "_id",
order: "desc" as RelationSortOrderType,
},
},
}
},
};
Now we can connect them to a common database while several services continue their work independently, provided that the data validation of the schemas works independently for each service and only understands its own data. You can see a complete example of this type of microservice implementation here.
Schemas
Above, it was said briefly about schemas, In general, each schema includes:
pure, relations, mainRelations, relatedRelations, embedded and struct, which is enclosed in object called service. By default, the service object has the main key. And by adding other microservices, other keys will be added to it.
We have used the superstruct library to create a pure structure in each schema, As a result, these values can be used for each field.
Pure Structure In Schema
As mentioned in the previous section, pure include the pure features of a schema. In fact, the features that are specific to the schema itself, not the relationships it has.
For example, the schema of a city has pure features: city ID, city name, its geographical location, and so on.
The structure of a pure schema is as follows, which includes a key and its type of feature.
export interface PureModel {
[key: string]: Struct<any>;
}
for example, the pure features of the city schema are defined as follows:
{
name: string(),
enName: optional(string()),
geometries: optional(object({
type: string(),
coordinates: array(array(number())),
})),
};
The InRelation Structure In Schema
As mentioned in the proposed method section, when schema A has a relationship with schema B, we store the pure values of schema B in the form of embed in schema A.
The relationship inrelation is divided into two types of single and multiple. If it is single, inrelation will be an object. If it is multiple, it will be an array of objects. The important issue is how many pure objects we can store in relation as embed? We have no limitation for this issue in Lesan but MongoDB database has a limitation of 16 megabytes for each BSON document. Since the number of our relations may not end up with one relation, it is better to consider a limitation ourselves. For example, if the total number of documents we want to embed is less than 100, we consider this relationship as inrelation. If the number is more than 100, we define this relationship as outrelation. The outrelation will be explained later.
The structure of the inrelation relationship is as follows:
export interface InRelation {
/**
* name of schema that this schema has relation with
*/
schemaName: string;
/**
* type of relation if equal to one: this schema record one object from other schema else
* this schema record array of object from other schema
*/
type: "one" | "many";
}
In this structure, SchemaName is the name of the schema that schema ‘A’ is associated with. Type can also have the values one or many. If the relationship is single, type takes the value of one and if it is more, it receives the value of many.
For example; As you can see below, the province schema has an inrelation relationship with the country schema, and since each province has only one country, the type of this relationship is single, so type = “one”. And since the number of cities in a province is also very limited. The province schema also has an inRelation relationship with the city, and since its number is more than one, its type becomes many.
stateInrelations = {
cities: { schemaName: "city", type: "many" },
country: { schemaName: "country", type: "one" },
};
The structure of OutRelation in the schema
The outerRelation structure is a relationship that has more than the limitation that we have considered by default for the inrelation relationship. In this type of relationship, we try to store a limited number that may be requested in the first request in an embedded way with a special algorithm. The important point is that for the next user request, they can easily send their request to the main schema and receive the rest of the list from there. Ultimately, this will significantly reduce the number of requests sent to the server.
For example, the number of cities in a country is usually more than a few hundred cities. Our limitation for the inrelation relationship was one hundred, so we store a limited number of cities within the country as an embedded outrelation relationship. By default, we have considered this limited number to be fifty and have sorted these fifty cities by their creation date and in DESC order. Or in another example, if we consider the user schema and the order schema in a shopping program, each order has a customer who is of the user schema type. Therefore, the user is stored in the order schema as an inrelation relationship of type one and embedded. On the other hand, the user schema is also related to the order schema. The user’s orders may be very large, so we store a limited number of each user’s orders as an outRelation relationship embedded in the user schema. We can even store orders multiple times as an outrelation relationship in the user schema. Once sorted by order registration date and once sorted by order price and …
The structure of the outrelation relationship is as follows:
export interface OutRelation {
/**
* name of schema that this schema has relation with
*/
schemaName: string;
/**
* number of value that we want to keep
*/
number: number;
/**
* sort : {field , order} - field of sort , and order of sort
*/
sort: {
field: string;
order: "asc" | "desc";
type: "number" | "date" | "objectId";
};
}
In this structure, schemaName is the name of the schema that schema A is related to. Number is the number of fields we want to keep in this schema, and an object called sort that includes three values:
1- field that we want to sort by.
2- Order type of ascending or descending.
3- Type the type of field we want to sort by.
The structure of embed in the schema
The embed structure is created at runtime and when the createEmbeded function is executed, it finds all the inrelation and outrelation relationships of all schemas from other schemas and replaces the pure relationship values.
If we consider the relationships of a schema as follows:
inrelation: {
"country": { schemaName: "country", type: "many" },
},
outrelation: {
"orders": {
schemaName: "order",
number: 50,
sort: { filed: "id", order: "desc" },
},
},
The structure of the embedded will be as follows:
embedded: {
"country": object({
"id": string(),
"name": string(),
}),
"orders": array({
"id": string(),
"price": number(),
}),
},
The structure of Struct in the schema
The Struct is also created at runtime and when the createStruct function is executed, it is used to fully validate that schema. The Struct contains the pure properties of a schema and the embedded properties extracted above. For example, the struct for the user schema that has a relationship with country and order is as follows:
struct: {
name:string(),
lastName:string(),
"country": {
"id": string(),
"name": string(),
}),
"orders": array({
"id": string(),
"price": number(),
}),
},
You can read all the features of the superstruct library here.
runServer (web server structure)
Inside the lesan, there is a web server without any dependencies that receives requests and responds appropriately. The structure of this web server is included in a try-catch, so the rest of the written code does not need to be covered with try-catch and it is only necessary to return an appropriate error for each function so that the same error can be sent to the customer side without any unexpected crashes.
The structure of the requests that should be sent to the server is a JSON as follows:
{
"service": "ecommerce",
"contents": "dynamic",
"wants": {
"model": "state",
"act": "getState"
},
"details": {
"set": {
"_id": "626fbe6e4b628d43f7e92ae9"
},
"get": {
"name": 1,
"country": {
"_id": 1,
"name": 1,
"states": {
"_id": 1,
"name": 1,
"country": {
"name": 1
}
}
}
}
}
}
With the service key, we can choose which microservice is going to respond to the request. By default, the value of this field is main. Sending this key is not mandatory.
The contents key receives the values dynamic and static.
The “wants” key is an object with two keys: model and act. In the model key, the models that exist in the static and dynamic values are selectable and in the act key, the actions that exist in the selected model are selectable.
In the details key, there is also an object with two keys set and get. The set key includes all the information that the selected action in the act key needs and the get key includes information that this action is supposed to return to us and we can choose whether to return details with values of zero or one.
Request processing
In addition to processing the sending structure explained above and delivering the correct information with the correct facilities to the final function, this web server can also process requests that are for downloading or uploading files and ultimately has a context within itself that can be shared between validators and action functions.
Dynamic structure
In fact, every model we create in the database will be one of the dynamic object keys inside the schemas object. Inside this key, for each of the actions written on that model, we create a key and this key also has two other keys. The validator key is executed before the action function and validates the data required by the action before executing its function. The act key is actually the main action function and at runtime will apply the requested changes to the model.
The structure of dynamic is as follows:
dynamic: {
user: {
create: {
validator: () => {
return true;
},
fn: (body) => {
return result;
},
},
update: {
validator: (input: any) => {
return true;
},
fn: (input: any) => {
return input;
},
},
},
},
Static structure
The structure of static is exactly the same as the structure of dynamic, except that it stores information in RAM and is usually used to store a parsed page of client-side apps. This has two advantages: first, if a page was supposed to send multiple requests to the dynamic structure, by storing its information in the static structure, we can receive this information by sending only one request to one of the keys set on the static structure models. Second, the stored information inside the static structure is stored in RAM so that it can be created, updated, deleted and retrieved more quickly.
The stored information inside the static structure is managed with an immutable state management.
Finally, the static structure acts as a cache layer, a layer whose information has an appropriate interaction with the actual data inside the database and can be easily updated and managed.
The structure of static is as follows:
static: {
"blogFirstPage": {
"get": {
"validator": (input: any) => {
return true;
},
"fn": (input: any) => {
return input;
},
},
"set": {
"validator": (input: any) => {
return true;
},
"fn": (input: any) => {
return input;
},
},
},
lesan functions
schemas = (schemas: TSchemas)
Parameters
schemas: TSchemas
schemaFns functions
const schemaFns = (schemas: TSchemas)
This function is create for define all things in local scope and also all functions of relationFns define in this function
Return
Parameters
schemas: TSchemas
getSchemas functions
getSchemas: ()
Get object of schema
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel("city", locationPure, {
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
});
const getSchemas = coreApp.schemas.getSchemas();
Return Of Example
{
"country": {
"pure": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
},
"relations": {},
"mainRelations": {},
"relatedRelations": {
"users": {
"mainRelationName": "country",
"mainRelationType": "single",
"schemaName": "user",
"type": "multiple",
"limit": 5,
"sort": {
"field": "\_id",
"order": "desc"
}
},
}
},
"city": {
"pure": {
"\_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
},
"relations": {
"country": {
"schemaName": "country",
"type": "single",
"optional": false,
"relatedRelations": {
"citiesAsc": {
"type": "multiple",
"limit": 5,
"sort": {
"field": "\_id",
"order": "asc"
}
},
"citiesDesc": {
"type": "multiple",
"limit": 5,
"sort": {
"field": "\_id",
"order": "desc"
}
},
}
}
},
"mainRelations": {
"country": {
"schemaName": "country",
"type": "single",
"optional": false
}
},
"relatedRelations": {
"users": {
"mainRelationName": "livedCities",
"mainRelationType": "multiple",
"schemaName": "user",
"type": "multiple",
"limit": 5,
"sort": {
"field": "\_id",
"order": "desc"
}
},
}
},
"user": {
"pure": {
"\_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"age": {
"type": "number",
"schema": null
}
},
"relations": {
"livedCities": {
"optional": false,
"schemaName": "city",
"type": "multiple",
"sort": {
"field": "\_id",
"order": "desc"
},
"relatedRelations": {
"users": {
"type": "multiple",
"limit": 5,
"sort": {
"field": "\_id",
"order": "desc"
}
}
}
},
},
"country": {
"optional": false,
"schemaName": "country",
"type": "single",
"relatedRelations": {
"users": {
"type": "multiple",
"limit": 5,
"sort": {
"field": "\_id",
"order": "desc"
}
},
}
}
},
"mainRelations": {
"livedCities": {
"schemaName": "city",
"type": "multiple",
"optional": false,
"sort": {
"field": "\_id",
"order": "desc"
}
},
"country": {
"schemaName": "country",
"type": "single",
"optional": false
}
},
"relatedRelations": {}
}
getPureOfMainRelations
getPureOfMainRelations: (schemaName: keyof TSchemas)
Extract pure feature of inrelations schema
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel("city", locationPure, {
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
});
const getCityPureOfMainRelations = coreApp.schemas.getPureOfMainRelations("city");
Return Of Example
{
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
}
}
}
}
Parameters
schemaName: keyof TSchemas
getSchema
getSchema: (schemaName: string)
Get one feature of schema by schemaName
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel("city", locationPure, {
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
});
const getCitySchema = coreApp.schemas.getSchema("city");
Return Of Example
{
pure: {
"_id": string(),
"name": string(),
"location": array(number(), number()),
},
"relations": {
"country": {
"schemaName": "country",
"type": "single",
"optional": false,
"relatedRelations": {
"cities": {
"type": "multiple",
"limit": 5,
"sort": {
"field": "\_id",
"order": "asc"
}
}
}
}
}
mainRelations: {
"country": {
schemaName: "country",
"type": "single",
"optional": false
}
},
"relatedRelations": {
"users": {
"mainRelationName": "livedCities",
"mainRelationType": "multiple",
"schemaName": "user",
"type": "multiple",
"limit": 5,
"sort": {
"field": "\_id",
"order": "desc"
}
}
}
}
Parameters
schemaName: string
getPureSchema
getPureSchema: (schemaName: string)
Get pure feature of one schema
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel("city", locationPure, {
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
});
const getCityPureSchema = coreApp.schemas.getPureSchema("city");
Return Of Example
{
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
}
}
Parameters
schemaName: string
getPureFromMainRelations
getPureFromRelatedRelations: (schemaName: string)
Example
const cities = coreApp.odm.newModel("city", locationPure, {
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
});
const getCityPureFromMainRelations = coreApp.schemas.getPureFromMainRelations("city");
Return Of Example
{
"country": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
}
}
}
}
Parameters
schemaName: string
getPureFromRelatedRelations
getPureFromRelatedRelations:(schemaName: string)
Extract pure feature of outrelation of schema
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getCityPureFromRelatedRelations = coreApp.schemas.getPureFromRelatedRelations("city");
Return Of Example
{
"users": {
"type": "array",
"schema": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"age": {
"type": "number",
"schema": null
}
}
}
},
"lovedByUser": {
"type": "array",
"schema": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"age": {
"type": "number",
"schema": null
}
}
}
}
}
Parameters
schemaName: string
createEmbedded
createEmbedded: (schemaName: string)
Create embed features, embed feature is equal to all of pure features of inerRelations and outerRelations
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const createCityEmbedded = coreApp.schemas.createEmbedded("city");
Return Of Example
{
"country": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
}
}
},
"users": {
"type": "array",
"schema": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"age": {
"type": "number",
"schema": null
}
}
}
},
"lovedByUser": {
"type": "array",
"schema": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"age": {
"type": "number",
"schema": null
}
}
}
}
}
Parameters
schemaName: string
createStruct
createStruct: (schemaName: string)
Create struct features, struct feature is used for create client of db. Struct feature is include pure feature and embed features
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const createCityStruct = coreApp.schemas.createStruct("city");
Return Of Example
{
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
}
}
},
"users": {
"type": "array",
"schema": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"age": {
"type": "number",
"schema": null
}
}
}
}
}
}
Parameters
schemaName: string
getSchemasKeys
getSchemasKeys: ()
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getSchemasKeys = coreApp.schemas.getSchemasKeys();
Return Of Example
["country", "city", "user"]
mainRelationsFns
const mainRelationsFns = (schemasObj: TSchemas)
This function is create for define all things in local scope and also all functions of inrelation define in this function
Return
getMainRelations
Parameters
schemasObj: TSchemas
getMainRelations
getMainRelations: (schemaName: string)
Get all of inerRealation of one schema
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getCityMainRelations = coreApp.schemas.getMainRelations("city");
Return Of Example
{
"country": {
"schemaName": "country",
"type": "single",
"optional": false
}
}
Parameters
schemaName: string
relatedRelationFns
const relatedRelationFns = (schemasObj: TSchemas)
This function is create for define all things in local scope and also all functions of outrelation define in this function
Return
getRelatedRelations
Parameters
schemasObj: TSchemas
getRelatedRelations
getRelatedRelations: (schemaName: string)
GetOutRelations of one schema
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getCityRelatedRelations = coreApp.schemas.getRelatedRelations("city");
Return Of Example
{
"users": {
"mainRelationName": "livedCities",
"mainRelationType": "multiple",
"schemaName": "user",
"type": "multiple",
"limit": 5,
"sort": {
"field": "_id",
"order": "desc"
}
},
"lovedByUser": {
"mainRelationName": "mostLovedCity",
"mainRelationType": "single",
"schemaName": "user",
"type": "multiple",
"limit": 3,
"sort": {
"field": "_id",
"order": "desc"
}
}
}
Parameters
schemaName: string
pureFns
const pureFns = (schemasObj: TSchemas)
This function is create for define all things in local scope and also all functions of pure define in this function
Parameters
schemasObj: TSchemas
addPureModel
addPureModel: (name: string, pureModel: IPureFields)
Add pure feature of model to schema
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getPostPureModel = coreApp.schemas.addPureModel("post", {name: string(), title: string(),});
Return Of Example
{
"pure": {
"title": {
"type": "string",
"schema": null
}
},
"relations": {},
"mainRelations": {},
"relatedRelations": {}
}
Parameters
name: string,
pureModel: IPureFields
getPureModel
getPureModel: (name: string)
Get pure features of one schema
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getCityPureModel = coreApp.schemas.getPureModel("city");
Return Of Example
{
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
}
}
Parameters
name: string
getPureModelByNameAndKey
getPureModelByNameAndKey: (name: string, key: string)
Get pure one feature of one schema by name of schema and key of feature
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getCityPureModelByNameAndKey = coreApp.schemas.getPureModelByNameAndKey("city","abb");
Return Of Example
{
"type": "string",
"schema": null
}
Parameters
name: string,
key: string
relationFns
const relationFns = (schemasObjs: TSchemas)
This function is create for define all things in local scope and also all functions of relationFns define in this function
Return
getRelation
Parameters
schemasObjs: TSchemas
getRelation
getRelation: (name: string, relationType: RelationType)
Get inerRelatrion or outerRealtion of one schema
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getCityRelation = coreApp.schemas.getRelation("city", "relations");
Return Of Example
{
"country": {
"schemaName": "country",
"type": "single",
"optional": false,
"relatedRelations": {
"citiesAsc": {
"type": "multiple",
"limit": 5,
"sort": {
"field": "_id",
"order": "asc"
}
}
}
}
}
Parameters
name: string
relationType: RelationType
selectStructFns
const selectStructFns = (schemasObj: TSchemas)
Parameters
schemasObj: TSchemas
fieldType
const fieldType = optional(enums([0, 1]));
Example
const cities = coreApp.odm.newModel("city", locationPure, {
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
});
const fieldType = coreApp.schemas.fieldType;
Return Of Example
{
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
decreaseIterate
const decreaseIterate = (depth: Iterate)
Example
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const decreaseIterate = coreApp.schemas.decreaseIterate({ value: "hello" });
Return Of Example
{
"value": "hello"
}
Parameters
depth: Iterate
checkRelation
const checkRelation: CheckRelation = (depth, relation);
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const checkCityRelation = coreApp.schemas.checkRelation({}, "city");
Return Of Example
false
Types
CheckRelation
Parameters
depth,
relation
selectStruct
const selectStruct = <T>(schema: keyof TSchemas, depth: number | T = 2)
Example
const cities = coreApp.odm.newModel("city", locationPure, {
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
});
const selectStruct = coreApp.schemas.selectStruct("city", {});
Return Of Example
{
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
Parameters
schema: keyof TSchemas,
depth: number | T = 2
acts functions
acts = (acts: Services);
this function is create for define all things in local scope and also all functions define in this function
Return
Parameters
acts: Services;
setAct
setAct: (actInp: ActInp)
set Actions to main service
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const setAddCityAct = coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
});
Return Of Example
{
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"name": { "type": "string", "schema": null },
"population": { "type": "number", "schema": null },
"abb": { "type": "string", "schema": null },
"isCapital": { "type": "boolean", "schema": null },
"country": { "type": "union", "schema": null }
}
},
"get": {
"type": "object",
"schema": {
"_id": { "type": "enums", "schema": { "0": 0, "1": 1 } },
"name": { "type": "enums", "schema": { "0": 0, "1": 1 } },
"population": { "type": "enums", "schema": { "0": 0, "1": 1 } },
"abb": { "type": "enums", "schema": { "0": 0, "1": 1 } },
"country": {
"type": "object",
"schema": {
"_id": { "type": "enums", "schema": { "0": 0, "1": 1 } },
"name": { "type": "enums", "schema": { "0": 0, "1": 1 } },
"population": { "type": "enums", "schema": { "0": 0, "1": 1 } },
"abb": { "type": "enums", "schema": { "0": 0, "1": 1 } }
}
},
"users": {
"type": "object",
"schema": {
"_id": { "type": "enums", "schema": { "0": 0, "1": 1 } },
"name": { "type": "enums", "schema": { "0": 0, "1": 1 } },
"age": { "type": "enums", "schema": { "0": 0, "1": 1 } }
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": { "type": "enums", "schema": { "0": 0, "1": 1 } },
"name": { "type": "enums", "schema": { "0": 0, "1": 1 } },
"age": { "type": "enums", "schema": { "0": 0, "1": 1 } }
}
}
}
}
}
},
"validationRunType": "assert"
}
Parameters
actInp: ActInp
getServiceKeys
getServiceKeys: ()
get key of services
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getServiceKeys = coreApp.acts.getServiceKeys();
Return Of Example
[
"main"
]
getActs
getActs: ( schema: string )
get actions of schema of main service
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getCityActs = coreApp.acts.getActs("city");
Return Of Example:
"addCity": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
},
"isCapital": {
"type": "boolean",
"schema": null
},
"country": {
"type": "union",
"schema": null
}
}
},
}
},
"validationRunType": "assert"
}
Parameters
schema: string;
getActsKeys
getActsKeys: (
service: keyof typeof acts,
schema: string,
)
get actions of schema of specific service
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getCityActsKeys = coreApp.acts.getActsKeys("main", "city");
Return Of Example
[
"addCity",
"updateCity",
"addCities",
"getCities",
"addCityCountry"
]
Parameters
schema: string;
service: keyof typeof acts;
acts: Services;
getActKeys
getActKeys: (schema: string)
Get key of Dynamic Actions wih service Name
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const getMainActKeys = coreApp.acts.getActKeys("main");
Return Of Example
[
"country",
"city",
"user",
]
Parameters
schema: string;
getAct
getAct: (service: keyof typeof acts, schema: string, actName: string)
Get specific action of schema of specific service
Example
const cities = coreApp.odm.newModel("city", locationPure, {});
const setAddCityAct = coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
});
const getCountryActs = coreApp.acts.getAct("main", "country", "addCountry");
Return Of Example
{
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
},
"isCapital": {
"type": "boolean",
"schema": null
},
"country": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
}
Parameters
service: keyof typeof acts,
acts: Services
schema: string,
actName: string
getAtcsWithServices
getAtcsWithServices: ()
Get all acts of all service
Example
const cities = coreApp.odm.newModel("city", locationPure, {});
const setAddCityAct = coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
});
const getAtcsWithServices = coreApp.acts.getAtcsWithServices();
Return Of Example
{
"main": {
"country": {
"addCountry": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
.
.
.
getMainActs
getMainActs: ()
Get acts of main service
Example
const cities = coreApp.odm.newModel("city", locationPure, {});
const setAddCityAct = coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
});
const getMainActs = coreApp.acts.getMainActs();
Return Of Example
{
"country": {
"addCountry": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"updateCountry": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"abb": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addCountries": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"multiCountries": {
"type": "array",
"schema": {
"type": "object",
"schema": null
}
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"getCountries": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"page": {
"type": "number",
"schema": null
},
"limit": {
"type": "number",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"deleteCountry": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "string",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
}
},
"city": {
"addCity": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
},
"isCapital": {
"type": "boolean",
"schema": null
},
"country": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"updateCity": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"abb": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addCities": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"multiCities": {
"type": "array",
"schema": {
"type": "object",
"schema": null
}
},
"country": {
"type": "string",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"getCities": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"page": {
"type": "number",
"schema": null
},
"take": {
"type": "number",
"schema": null
},
"countryId": {
"type": "string",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addCityCountry": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"city": {
"type": "union",
"schema": null
},
"country": {
"type": "union",
"schema": null
},
"isCapital": {
"type": "boolean",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
}
},
"user": {
"addUser": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"name": {
"type": "string",
"schema": null
},
"age": {
"type": "number",
"schema": null
},
"country": {
"type": "union",
"schema": null
},
"livedCities": {
"type": "array",
"schema": {
"type": "union",
"schema": null
}
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addUsers": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"multiUsers": {
"type": "array",
"schema": {
"type": "object",
"schema": null
}
},
"country": {
"type": "union",
"schema": null
},
"livedCities": {
"type": "array",
"schema": {
"type": "union",
"schema": null
}
},
"city": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addUserLivedCities": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"livedCities": {
"type": "array",
"schema": {
"type": "union",
"schema": null
}
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addUserCountry": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"country": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addUserCities": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"livedCities": {
"type": "array",
"schema": {
"type": "union",
"schema": null
}
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addMostLovedCity": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"lovedCity": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"removeMostLovedCity": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"lovedCity": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"removeLivedCities": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"livedCities": {
"type": "array",
"schema": {
"type": "union",
"schema": null
}
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"updateUser": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"age": {
"type": "number",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"getUsers": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"page": {
"type": "number",
"schema": null
},
"take": {
"type": "number",
"schema": null
},
"countryId": {
"type": "union",
"schema": null
},
"cityId": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"getUser": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"userId": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"validationRunType": "assert"
}
}
}
getMainAct
getMainAct: (schema: string, actName: string)
Get specific Dynamic Action of main service with schemaName and actName
Example
const cities = coreApp.odm.newModel("city", locationPure, {});
const setAddCityAct = coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
});
const getMainAct = coreApp.acts.getMainAct("city", "addCity");
Return Of Example
{
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
},
"isCapital": {
"type": "boolean",
"schema": null
},
"country": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
}
Parameters
schema: string,
actName: string
setService
setService: (serviceName: keyof typeof acts, service: Acts | string)
set acts to service or ser addreess to service
Example
const coreApp = lesan();
const locationPure = {
name: string(),
population: number(),
abb: string(),
};
const cities = coreApp.odm.newModel(
"city",
locationPure,
{
country: {
schemaName: "country",
type: "single",
optional: false,
relatedRelations: {
cities: {
type: "multiple",
limit: 5,
sort: {
field: "_id",
order: "asc",
},
},
},
},
},
);
const setMainService = coreApp.acts.setService("main", "main");
Return Of Example:
"main"
Parameters
serviceName: keyof typeof acts,
service: Acts | string,
acts: Services
getService
getService: (service: keyof typeof acts)
Get all of acts of specific service
Example
const cities = coreApp.odm.newModel("city", locationPure, {});
const setAddCityAct = coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
});
const getMainService = coreApp.acts.getService("main");
Return Of Example
{
"country": {
"addCountry": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"updateCountry": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"abb": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addCountries": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"multiCountries": {
"type": "array",
"schema": {
"type": "object",
"schema": null
}
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"getCountries": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"page": {
"type": "number",
"schema": null
},
"limit": {
"type": "number",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"deleteCountry": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "string",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
}
},
"city": {
"addCity": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"name": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
},
"abb": {
"type": "string",
"schema": null
},
"isCapital": {
"type": "boolean",
"schema": null
},
"country": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"updateCity": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"abb": {
"type": "string",
"schema": null
},
"population": {
"type": "number",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addCities": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"multiCities": {
"type": "array",
"schema": {
"type": "object",
"schema": null
}
},
"country": {
"type": "string",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"getCities": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"page": {
"type": "number",
"schema": null
},
"take": {
"type": "number",
"schema": null
},
"countryId": {
"type": "string",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addCityCountry": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"city": {
"type": "union",
"schema": null
},
"country": {
"type": "union",
"schema": null
},
"isCapital": {
"type": "boolean",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
}
},
"user": {
"addUser": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"name": {
"type": "string",
"schema": null
},
"age": {
"type": "number",
"schema": null
},
"country": {
"type": "union",
"schema": null
},
"livedCities": {
"type": "array",
"schema": {
"type": "union",
"schema": null
}
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addUsers": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"multiUsers": {
"type": "array",
"schema": {
"type": "object",
"schema": null
}
},
"country": {
"type": "union",
"schema": null
},
"livedCities": {
"type": "array",
"schema": {
"type": "union",
"schema": null
}
},
"city": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addUserLivedCities": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"livedCities": {
"type": "array",
"schema": {
"type": "union",
"schema": null
}
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addUserCountry": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"country": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addUserCities": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"livedCities": {
"type": "array",
"schema": {
"type": "union",
"schema": null
}
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"addMostLovedCity": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"lovedCity": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"removeMostLovedCity": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"lovedCity": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"removeLivedCities": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"livedCities": {
"type": "array",
"schema": {
"type": "union",
"schema": null
}
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"updateUser": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"_id": {
"type": "union",
"schema": null
},
"name": {
"type": "string",
"schema": null
},
"age": {
"type": "number",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"getUsers": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"page": {
"type": "number",
"schema": null
},
"take": {
"type": "number",
"schema": null
},
"countryId": {
"type": "union",
"schema": null
},
"cityId": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"validationRunType": "assert"
},
"getUser": {
"validator": {
"type": "object",
"schema": {
"set": {
"type": "object",
"schema": {
"userId": {
"type": "union",
"schema": null
}
}
},
"get": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"livedCities": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"mostLovedCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"lovedByUser": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
},
"country": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"citiesAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopAsc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"citiesByPopDesc": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"capitalCity": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"population": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"abb": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"users": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
},
"usersByAge": {
"type": "object",
"schema": {
"_id": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"name": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
},
"age": {
"type": "enums",
"schema": {
"0": 0,
"1": 1
}
}
}
}
}
}
}
}
}
},
"validationRunType": "assert"
}
}
}
Parameters
service: keyof typeof acts
acts: Services
odm functions
Types
setDb
getCollection
newModel
Types
find
find countries
lets add getCountries functions:
Example
const getCountriesValidator = () => {
return object({
set: object({
page: number(),
limit: number(),
}),
get: coreApp.schemas.selectStruct("country", 1),
});
};
const getCountries: ActFn = async (body) => {
let {
set: { page, limit },
get,
} = body.details;
page = page || 1;
limit = limit || 50;
const skip = limit * (page - 1);
return await countries
.find({ projection: get, filters: {} })
.skip(skip)
.limit(limit)
.toArray();
};
coreApp.acts.setAct({
schema: "country",
actName: "getCountries",
validator: getCountriesValidator(),
fn: getCountries,
});
find functions accept three inputs:
filterswhich is mongodbfilter query operationprojectionwhich is mongodbprojection operation- and
optionaloption which is mongodbfindOption
The code
So this is all the code we've written so far (You can also see and download this code from here):
Return Of Example:
{
body: [
{
_id: 659fda257b94d4cdfed11dec,
name: Kiribati,
population: 68092328,
abb: AIA
},
{
_id: 659fda267b94d4cdfed11ded,
name: Aruba,
population: 31408054,
abb: BHS
}
],
success: true
}
findOne
find a country
lets add getCountry functions:
Example
const getCountryValidator = () => {
return object({
set: object({
countryId: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("country", {
citiesByPopulation: 1,
users: 1,
capital: 1,
}),
});
};
const getCountry: ActFn = async (body) => {
const {
set: { countryId },
get,
} = body.details;
return await countries
.findOne({
filters: { _id: new ObjectId(countryId) },
projection: get,
});
};
coreApp.acts.setAct({
schema: "country",
actName: "getCountry",
validator: getCountryValidator(),
fn: getCountry,
});
findOne functions accept three inputs:
filterswhich is mongodb findOne query operationprojectionwhich is mongodb projection operation- and optional
optionwhich is mongodb findOption
You can also read mongodb findOne section for more information.
Return Of Example:
{
body:
{
_id: 659fda257b94d4cdfed11dec,
name: Kiribati,
population: 68092328,
abb: AIA
},
success: true
}
insertOne
{
doc: OptionalUnlessRequiredId<InferPureFieldsType>;
relations?: TInsertRelations<TR>;
options?: InsertOptions;
projection?: Projection;
}
- The
dockey receives an object of the pure values of the selected model.OptionalUnlessRequiredIdtype is thedocumenttype in the official MongoDB driver. You can read about it here. - The
relationskey receives an object from the relations of this model. There is no relationship here. We will read about this in the next section. - The
optionskey gets the official MongoDB driver options to insertOne. You can read more about this here - The
projectionkey is used to receive written data. We use native projection in MangoDB. You can read MongoDB's own documentation here. IninsertOne, you can only penetrate one step in relationships. Here you can get only pure fields because there is no relation. We will read more about this later.
The code
So this is all the code we've written so far (You can also see and download this code from here):
Example
const addCountryValidator = () => {
return object({
set: object(locationPure),
get: coreApp.schemas.selectStruct("country", { users: 1 }),
});
};
const addCountry: ActFn = async (body) => {
const { name, population, abb } = body.details.set;
return await countries.insertOne({
doc: {
name,
population,
abb,
},
projection: body.details.get,
});
};
coreApp.acts.setAct({
schema: "country",
actName: "addCountry",
validator: addCountryValidator(),
fn: addCountry,
});
Return Of Example:
{
body: {
_id: 65a24bd39e02c1041973ec21,
name: testCountry,
population: 90661541,
abb: tc
},
success: true
}
insertMany
lets add getCountry functions:
Example
const addMultipleCountriesValidator = () => {
return object({
set: object({ multiCountries: array(object()) }),
get: coreApp.schemas.selectStruct("country", { users: 1 }),
});
};
const addCountries: ActFn = async (body) => {
const { multiCountries } = body.details.set;
return await countries.insertMany({
docs: multiCountries,
projection: body.details.get,
});
};
coreApp.acts.setAct({
schema: "country",
actName: "addCountries",
validator: addMultipleCountriesValidator(),
fn: addCountries,
});
insertMany functions accept three inputs:
The code
So this is all the code we've written so far (You can also see and download this code from here):
Return Of Example:
{
body: [
{
_id: 65a3cabbb7f33fd5950b92fe,
name: Afghanistan,
population: 15000000,
abb: AFG
},
{
_id: 65a3cabbb7f33fd5950b92ff,
name: Iraq,
population: 35000000,
abb: IRQ
},
{
_id: 65a3cabbb7f33fd5950b9300,
name: Iran,
population: 15000000,
abb: IRI
}
],
success: true
}
addRelation
lets add addRelation functions:
Example
const addCityCountryValidator = () => {
return object({
set: object({
city: objectIdValidation,
country: objectIdValidation,
isCapital: boolean(),
}),
get: coreApp.schemas.selectStruct("city", 1),
});
};
const addCityCountry: ActFn = async (body) => {
const { country, city, isCapital } = body.details.set;
return await cities.addRelation({
filters: { _id: new ObjectId(city) },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
citiesAsc: true,
citiesDesc: true,
citiesByPopAsc: true,
citiesByPopDesc: true,
capitalCity: isCapital,
},
},
},
replace: true,
});
};
coreApp.acts.setAct({
schema: "city",
actName: "addCityCountry",
validator: addCityCountryValidator(),
fn: addCityCountry,
});
addRelations functions accept three inputs:
TInsertRelationsProjectionFilterreplace:boolean
Return Of Example:
{
body: {
_id: 65a3dfe5b7f33fd5950b9345,
name: Harat,
population: 1800000,
abb: HAR,
country: {
_id: 65a3dfe5b7f33fd5950b9342,
name: Afghanistan,
population: 15000000,
abb: AFG
}
},
success: true
}
removeRelation
lets add removeRelation functions:
Example
const removeMostLovedCityValidator = () => {
return object({
set: object({
_id: objectIdValidation,
lovedCity: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const removeMostLovedCity: ActFn = async (body) => {
const { lovedCity, _id } = body.details.set;
return await users.removeRelation({
filters: { _id: new ObjectId(_id) },
projection: body.details.get,
relations: {
mostLovedCity: {
_ids: new ObjectId(lovedCity),
relatedRelations: {
lovedByUser: true,
},
},
},
});
};
coreApp.acts.setAct({
schema: "user",
actName: "removeMostLovedCity",
validator: removeMostLovedCityValidator(),
fn: removeMostLovedCity,
});
removeRelations functions accept three inputs:
Return Of Example:
{
body: {
_id: 65a3d561b7f33fd5950b932e,
name: Erfan Gholami,
age: 22,
livedCities: [
{
_id: 65a3d560b7f33fd5950b931f,
name: Tehran,
population: 50,
abb: TH
},
{
_id: 65a3d560b7f33fd5950b9320,
name: Kerman,
population: 12,
abb: KM
}
],
country: {
_id: 65a3d55fb7f33fd5950b9312,
name: Iran,
population: 15000000,
abb: IRI
},
mostLovedCity: {}
},
success: true
}
findOneAndUpdate
Updating is the most challenging issue in Lesan. Because by updating one document, thousands or maybe millions of other documents may also be updated.
Let's explore a few scenarios.
Update a user
lets add findOneAndUpdate functions:
Example
const updateUserValidator = () => {
return object({
set: object({
_id: objectIdValidation,
name: optional(string()),
age: optional(number()),
}),
get: coreApp.schemas.selectStruct("user", 1),
});
};
const updateUser: ActFn = async (body) => {
const { name, age, _id } = body.details.set;
const setObj: { name?: string; age?: number } = {};
name && (setObj.name = name);
age && (setObj.age = age);
return await users.findOneAndUpdate({
filter: { _id: new ObjectId(_id) },
projection: body.details.get,
update: { $set: setObj },
});
};
coreApp.acts.setAct({
schema: "user",
actName: "updateUser",
validator: updateUserValidator(),
fn: updateUser,
});
findOneAndUpdate functions accept three inputs:
filterswhich is mongodbfilter query operationupdatewhich is mongodbprojection operation- and
optionaloption which is mongodbprojection
Return Of Example:
{
body: {
_id: 659fda277b94d4cdfed11e15,
name: Syd Amir,
age: 35,
livedCities: [
{
_id: 659fda277b94d4cdfed11e10,
name: Yazd,
population: 16,
abb: YZ
},
{
_id: 659fda267b94d4cdfed11e0c,
name: Esfahan,
population: 25,
abb: ES
},
{
_id: 659fda267b94d4cdfed11e0b,
name: Kerman,
population: 12,
abb: KM
},
{
_id: 659fda267b94d4cdfed11e0a,
name: Tehron,
population: 10000000,
abb: TEH
},
{
_id: 659fda267b94d4cdfed11e09,
name: Hamedan,
population: 10,
abb: HM
}
],
country: {
_id: 659fda267b94d4cdfed11dfd,
name: Islamic Republic Of Iran,
population: 95000000,
abb: IRI
}
},
success: true
}
deleteOne
delete country
lets add deleteCountry functions:
Example
const deleteCountryValidator = () => {
return object({
set: object({
_id: string(),
}),
get: coreApp.schemas.selectStruct("country", 1),
});
};
const deleteCountry: ActFn = async (body) => {
const {
set: { _id },
get,
} = body.details;
return await countries.deleteOne({
filter: { _id: new ObjectId(_id) },
hardCascade: true,
});
};
coreApp.acts.setAct({
schema: "country",
actName: "deleteCountry",
validator: deleteCountryValidator(),
fn: deleteCountry,
});
deleteOne functions accept three inputs:
filterwhich is mongodb deleteOne query operation- and optional
optionwhich is mongodb findOption -
hardCascade: If it is correct, all the documents related to ind will be deleted, and if it is not, it will lead to an error
You can also read mongodb deleteOne section for more information.
Return Of Example:
{
body: true,
success: true
}
aggregation
lets add addRelation functions:
Example
const getCitiesValidator = () => {
return object({
set: object({
page: number(),
take: number(),
countryId: optional(size(string(), 24)),
}),
get: coreApp.schemas.selectStruct("city", 5),
});
};
const getCities: ActFn = async (body) => {
const {
set: { page, take, countryId },
get,
} = body.details;
const pipeline = [];
pipeline.push({ $skip: (page - 1) * take });
pipeline.push({ $limit: take });
countryId &&
pipeline.push({ $match: { "country._id": new ObjectId(countryId) } });
return await cities
.aggregation({
pipeline,
projection: get,
})
.toArray();
};
coreApp.acts.setAct({
schema: "city",
actName: "getCities",
validator: getCitiesValidator(),
fn: getCities,
});
find functions accept three inputs:
pipelinewhich is mongodbpipline array documentprojectionwhich is mongodbprojection operation- and
optionaloption which is mongodbaggregateOptions
Return Of Example:
{
body: {
_id: 659fda277b94d4cdfed11e15,
name: Syd Amir,
age: 35,
livedCities: [
{
_id: 659fda277b94d4cdfed11e10,
name: Yazd,
population: 16,
abb: YZ
},
{
_id: 659fda267b94d4cdfed11e0c,
name: Esfahan,
population: 25,
abb: ES
},
{
_id: 659fda267b94d4cdfed11e0b,
name: Kerman,
population: 12,
abb: KM
},
{
_id: 659fda267b94d4cdfed11e0a,
name: Tehron,
population: 10000000,
abb: TEH
},
{
_id: 659fda267b94d4cdfed11e09,
name: Hamedan,
population: 10,
abb: HM
}
],
country: {
_id: 659fda267b94d4cdfed11dfd,
name: Islamic Republic Of Iran,
population: 95000000,
abb: IRI
}
},
success: true
}
contextFns functions
contextFns
getContextModel
const getContextModel = () => context;
Example
const addCityValidator = () => {
return object({
set: object({
...locationPure,
isCapital: optional(boolean()),
country: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("city", 1),
});
};
const addCity: ActFn = async (body) => {
const { country, isCapital, name, population, abb } = body.details.set;
const myContext = coreApp.contextFns.getContextModel();
return await cities.insertOne({
doc: { name, population, abb },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
citiesAsc: true,
citiesDesc: true,
citiesByPopAsc: true,
citiesByPopDesc: true,
capitalCity: isCapital,
},
},
},
});
};
const addSomthingToContext = () => {
const prevContext = coreApp.contextFns.getContextModel();
coreApp.contextFns.addContext({ ...prevContext, userName: "Mina" });
}
coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
})
preAct: [addSomthingToContext]
Return Of Example
myContext: {
Headers: Headers {
accept: "*/*",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.9",
authorization: "",
connection: "keep-alive",
"content-length": "349",
"content-type": "application/json",
host: "localhost:1366",
origin: "http://localhost:1366",
referer: "http://localhost:1366/playground",
"sec-ch-ua": '"Chromium";v="118", "Google Chrome";v="118", "Not=A?Brand";v="99"',
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": '"Linux"',
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.3"... 1 more character
},
body: {
service: "main",
model: "city",
act: "addCity",
details: {
get: {
_id: 1,
name: 1,
population: 1,
abb: 1,
country: [Object],
users: [Object],
lovedByUser: [Object]
},
set: {
name: "hamedan",
population: 500000,
abb: "hmd",
isCapital: false,
country: "6598f6594dd08ab9b8598206"
}
}
},
con: {
Headers: Headers {
accept: "*/*",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.9",
authorization: "",
connection: "keep-alive",
"content-length": "349",
"content-type": "application/json",
host: "localhost:1366",
origin: "http://localhost:1366",
referer: "http://localhost:1366/playground",
"sec-ch-ua": '"Chromium";v="118", "Google Chrome";v="118", "Not=A?Brand";v="99"',
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": '"Linux"',
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.3"... 1 more character
},
body: {
service: "main",
model: "city",
act: "addCity",
details: { get: [Object], set: [Object] }
},
userName: "Mina"
}
}
setContext
const setContext = (
obj: Record<string, any>,
) => (context = { ...getContextModel(), ...obj });
Example
const addCityValidator = () => {
return object({
set: object({
...locationPure,
isCapital: optional(boolean()),
country: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("city", 1),
});
};
const addCity: ActFn = async (body) => {
const { country, isCapital, name, population, abb } = body.details.set;
const myContext = coreApp.contextFns.getContextModel();
return await cities.insertOne({
doc: { name, population, abb },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
citiesAsc: true,
citiesDesc: true,
citiesByPopAsc: true,
citiesByPopDesc: true,
capitalCity: isCapital,
},
},
},
});
};
const addSomthingToContext = () => {
const prevContext = coreApp.contextFns.getContextModel();
coreApp.contextFns.addContext({ ...prevContext, userName: "Mina" });
}
coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
})
preAct: [addSomthingToContext]
Return Of Example
{
Headers: Headers {
accept: "*/*",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.5",
authorization: "",
connection: "keep-alive",
"content-length": "349",
"content-type": "application/json",
cookie: "next-auth.session-token=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..MmT9zoRN0E-gIPB-.HOQdbQUu6-36jQKBAn...",
host: "localhost:1366",
origin: "http://localhost:1366",
referer: "http://localhost:1366/playground",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"user-agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0"
},
body: {
service: "main",
model: "city",
act: "addCity",
details: {
get: {
_id: 1,
name: 1,
population: 1,
abb: 1,
country: [Object],
users: [Object],
lovedByUser: [Object]
},
set: {
name: "malayer",
population: 500000,
abb: "mlr",
isCapital: false,
country: "659fda267b94d4cdfed11dfb"
}
}
},
name: "malayer"
}
addContext
add Request to Context because the requeste may be required in later functions
const addContext = (con: LesanContenxt) => context = { ...context, con };
Example
const addCityValidator = () => {
return object({
set: object({
...locationPure,
isCapital: optional(boolean()),
country: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("city", 1),
});
};
const addCity: ActFn = async (body) => {
const { country, isCapital, name, population, abb } = body.details.set;
const myContext = coreApp.contextFns.getContextModel();
return await cities.insertOne({
doc: { name, population, abb },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
citiesAsc: true,
citiesDesc: true,
citiesByPopAsc: true,
citiesByPopDesc: true,
capitalCity: isCapital,
},
},
},
});
};
const addSomthingToContext = () => {
const prevContext = coreApp.contextFns.getContextModel();
coreApp.contextFns.addContext({ ...prevContext, userName: "Mina" });
}
coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
})
preAct: [addSomthingToContext]
Return Of Example
{
Headers: Headers {
accept: "*/*",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.5",
authorization: "",
connection: "keep-alive",
"content-length": "343",
"content-type": "application/json",
host: "localhost:1366",
origin: "http://localhost:1366",
referer: "http://localhost:1366/playground",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"user-agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0"
},
body: {
service: "main",
model: "city",
act: "addCity",
details: {
get: {
_id: 1,
name: 1,
population: 1,
abb: 1,
country: [Object],
users: [Object],
lovedByUser: [Object]
},
set: {
name: "sss",
population: 456546,
abb: "s",
isCapital: false,
country: "659fda267b94d4cdfed11dee"
}
}
},
name: "malayer",
con: {
Headers: Headers {
accept: "*/*",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.5",
authorization: "",
connection: "keep-alive",
"content-length": "343",
"content-type": "application/json",
host: "localhost:1366",
origin: "http://localhost:1366",
referer: "http://localhost:1366/playground",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"user-agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0"
},
body: {
service: "main",
model: "city",
act: "addCity",
details: { get: [Object], set: [Object] }
},
name: "malayer",
userName: "Mina"
}
}
addContexts
const addContexts = (con: LesanContenxt) => context = con;
Example
const addCityValidator = () => {
return object({
set: object({
...locationPure,
isCapital: optional(boolean()),
country: objectIdValidation,
}),
get: coreApp.schemas.selectStruct("city", 1),
});
};
const addCity: ActFn = async (body) => {
const { country, isCapital, name, population, abb } = body.details.set;
const myContext = coreApp.contextFns.getContextModel();
return await cities.insertOne({
doc: { name, population, abb },
projection: body.details.get,
relations: {
country: {
_ids: new ObjectId(country),
relatedRelations: {
citiesAsc: true,
citiesDesc: true,
citiesByPopAsc: true,
citiesByPopDesc: true,
capitalCity: isCapital,
},
},
},
});
};
const addSomthingToContext = () => {
const prevContext = coreApp.contextFns.getContextModel();
coreApp.contextFns.addContexts({ ...prevContext, userName: "Mina" });
}
coreApp.acts.setAct({
schema: "city",
actName: "addCity",
validator: addCityValidator(),
fn: addCity,
})
preAct: [addSomthingToContext]
Return Of Example
{
Headers: Headers {
accept: "*/*",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.5",
authorization: "",
connection: "keep-alive",
"content-length": "349",
"content-type": "application/json",
cookie: "next-auth.session-token=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..MmT9zoRN0E-gIPB-.HOQdbQUu6-36jQKBAn...",
host: "localhost:1366",
origin: "http://localhost:1366",
referer: "http://localhost:1366/playground",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"user-agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0"
},
body: {
service: "main",
model: "city",
act: "addCity",
details: {
get: {
_id: 1,
name: 1,
population: 1,
abb: 1,
country: [Object],
users: [Object],
lovedByUser: [Object]
},
set: {
name: "malayer",
population: 500000,
abb: "mlr",
isCapital: false,
country: "659fda267b94d4cdfed11dfb"
}
}
},
name: "malayer",
userName: "erfan"
}
addReqToContext
add Request Header to Context because the requeste may be required in later functions @param con - Headers of user @returns nothing
addHeaderToContext
add Request Header to Context because the requeste may be required in later functions @param con - Headers of user @returns nothing
addBodyToContext
this function is create for define all things in local scope and also all functions of context define in this function @returns - return objects of all functions that define in this function
runServer functions
this function is for run Server and get request of client and send response of request for client @param port - port of listen @param playground - use playground or not? @param db - connection of DB @param typeGeneration -
generateSchemTypes functions
types
The all custom type we generate for lesan is:
Types
Tshemas types
export type TSchemas = Record<string, IModel>;
Types
IModel
IModel types
export interface IModel {
pure: IPureFields;
relations: Record<string, TRelation>;
mainRelations: Record<string, IMainRelation>;
relatedRelations: Record<string, IRelatedRelation>;
}
Types
TRelation
IMainRelation
IRelatedRelation
TRelation
export interface TRelation {
schemaName: string;
type: RelationDataType;
optional: boolean;
sort?: {
field: string;
order: RelationSortOrderType;
};
relatedRelations: {
[key: string]: TRelatedRelation;
};
}
Types
RelationDataType
RelationSortOrderType
TRelatedRelation
RelationDataType
export type RelationDataType = "single" | "multiple";
RelationSortOrderType
export type RelationSortOrderType = "asc" | "desc";
TRelatedRelation
export type TRelatedRelation = {
type: RelationDataType;
limit?: null | number;
sort?: {
field: string;
order: RelationSortOrderType;
};
};
Types
RelationDataType
RelationSortOrderType
IMainRelation
export interface IMainRelation {
schemaName: string;
type: RelationDataType;
optional: boolean;
sort?: {
field: string;
order: "asc" | "desc";
};
}
if schema has relation with other schema and in SQL that we keep foreign key.
store in InRelation feature
Types
RelationDataType
IRelatedRelation
export interface IRelatedRelation {
schemaName: string;
mainRelationName: string;
mainRelationType: RelationDataType;
type: RelationDataType;
limit?: null | number;
sort?: {
field: string;
order: "asc" | "desc";
};
}
if schema has relation with other schema and in SQL that we dont keep foriegn key.
store in OutRelation feature and usually the number of it greater thant of 50
Types
RelationDataType
RelationType
export type RelationType = "mainRelations" | "relatedRelations" | "relations";
IPureFields
export interface IPureFields {
[key: string]: Struct<any>;
}
Types
Struct
CheckRelation
type CheckRelation = (depth: Iterate, relation: string)
Parameters
depth: Iterate
relation: string
Iterate
export type Iterate = Record<string, number | any>;
Services types
export interface Services {
main: Acts;
[key: string]: Acts | string | undefined;
}
service inteface is include main service and functions and also maybe include other services
main services is type of Acts , other services maybe type of string or Act: if type of string we get answer of req with http Request , but if type of it equal to Acts with answer to req directly
Types
Acts
Acts types
export interface Acts {
[key: string]: {
[key: string]: Act;
};
}
Acts include two features : dynamic and static dynamic for dynamic request and static for static request
Types
Act
Act
export interface Act {
validator: Struct<any>;
fn: ActFn;
preAct?: Function[];
preValidation?: Function[];
validationRunType?: "assert" | "create";
}
interface of Act is include of two features: validator of function and fn
Types
Struct
ActFn
ActFn
export type ActFn = (body: TLesanBody) => any;
type of ActFn
Parameters
body: TLesanBody
TLesanBody
export interface TLesanBody {
service?: string;
model: string;
act: string;
details: Details;
}
interface is type of input of Actions
Types
Details
Details
export interface Details {
set: Record<string, any>;
get: Record<string, any>;
}
details of input is include set , get
ActInp
export interface ActInp {
schema: string;
actName: string;
validator: Struct<any>;
fn: ActFn;
preAct?: Function[];
preValidation?: Function[];
validationRunType?: "assert" | "create";
}
ActInp is type of action in lesan for set action function
Types
Struct
ActFn
odm types
TInsertRelations
type TInsertRelations<T extends IRelationsFileds> = {
[mainKey in keyof T]?: {
_ids: ObjectId | ObjectId[];
relatedRelations?: {
[key in keyof T[mainKey]["relatedRelations"]]: boolean;
};
};
};
Types
IRelationsFileds
IRelationsFileds
interface IRelationsFileds {
[key: string]: TRelation;
}
Types
TRelation
projection
export type Projection = { [key: string]: number | Projection };
context types
Types
LesanContenxt
export interface LesanContenxt {
[key: string]: any;
Headers: Headers;
body: TLesanBody | null;
}
Types
TLesanBody