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 usespostgres
as a database. - Lesan returns data to client
1417%
faster than theprisma-express-graphql
. Which usespostgres
as 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.toml
file 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.x
in 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.x
in 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
string
andnumber
from 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
object
functionActFn
type 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:
schema
is the name of the model to which we want to set an action.actName
is just a simple string to identify the act.fn
is the function we call when a request arrives for it.validator
is a superstruct object which is called before calling the act fn and validating the given data. Validator includesset
andget
objects.- An optional key named
validationRunType
that receives the values ofassert
andcreate
and 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
preAct
which 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 forauthorization
andauthentication
. 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 anobject
in which we define the required input information for each function available on the client side. In the desired function, we can get theset
object information from this address.body.details.set
. Note that this object must be of Superstructobject
function 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 of0
or1
for 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]), });
selectStruct
function ofcoreApp.schemas.selectStruct
. This function has two inputs. The first input is thename
of 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 theselectStruct
function can be entered as anumber
or anobject
. If entered as an object, the keys of this object must be thenames
of the selected model relationships, and its value can again be anumber
or anobject
of 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
service
key is used to select one of themicroservices
set on the application. You can read more about this here. - The
model
key is used to select one of theModels
added to the application. - The
act
key is used to select one of theActs
added to the application. - The
details
key 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 calledget
andset
, we talked a little about it before.set
: It contains the information we need in theAct
function. For this reason, we can extractname
,population
, andabb
from 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
doc
key receives an object of the pure values of the selected model.OptionalUnlessRequiredId
type is thedocument
type in the official MongoDB driver. You can read about it here. - The
relations
key receives an object from the relations of this model. There is no relationship here. We will read about this in the next section. - The
options
key gets the official MongoDB driver options to insertOne. You can read more about this here - The
projection
key 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.x
in 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:
port
used to specify the port used to run the server.polyground
that receives aBoolean
value that specifies whether the Polyground is available athttp://{server-address}:{port}/playground
address.typeGeneration
, which receives aBoolean
value 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.staticPath
that receives anarray
of paths as astring
and makes the content inside these paths statically serveable. We will read more about this later.cors
which receives either the*
value or anarray
of URLs as astring
, and makes these addresses have the ability to communicate with the server and not receive thecors
error.
Running App
Now you can run
deno run -A mod.ts
for 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
schemaName
key receives the exact name of anotherschema
to establish a relation. - The
type
key specifies whether the relationship type should besingle
ormultiple
. - The
optional
key specifies whether or not it is mandatory to enter information about this relationship when importing a new document. - The
sort
key is optional and specifies that if the relationship type ismultiple
, based on whichfield
of the relationship schema, the information should be arranged. This key receives an object with two keys:- The
field
that receives the name of one of the schema fields in the relation. - An
order
that receives the value ofasc
anddesc
and specifies whether the arrangement should be from bottom to top or vice versa.
- The
relatedRelations
key 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
type
key specifies whether the relationship type should besingle
ormultiple
. limit
which specifies the number of relations to be kept if the relationtype
ismultiple
.- The
sort
key is optional and specifies that if the relationship type ismultiple
, based on whichfield
of the relationship schema, the information should be arranged. This key receives an object with two keys:- The
field
that receives the name of one of the schema fields in the relation. - An
order
that receives the value ofasc
anddesc
and 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
objectIdValidation
andObjectId
fromlesan
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:
ids
which receives either anObjectId
or 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 aboolean
value. 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
array
function 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
filter
key that receives MongoDB findOne filter and finds only one document to change its relationships. - The
relations
key receives an object from the relations of this model. We talk about the relation input here - The
projection
key is used to receive written data. Also we talk aboutprojection
key here - And another key called
replace
, which is not used here, and receives a boolean value offalse
ortrue
. 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
command
to 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
command
to add these 3 users to the end of this list. - Creating a
command
to unify this list. - Creating a
command
to delete the current user from this list. - Creating a sorting
command
for this list according to the method we mentioned in the initial settings of relationships. - Creating an
command
to limit this list to the number that we said in the initial settings of relationships.
- Creating an
command
to 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
commands
we have created so far. - Execution of the
command
to 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
filter
key that receives MongoDB findOne filter and finds only one document to change its relationships. - The
relations
key receives an object from the relations of this model. We talk about the relation input here - The
projection
key is used to receive written data. Also we talk aboutprojection
key 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
cities
andmostPopulousCities
fields of this country or not. If it is stored in thecities
field, we must do the same steps as above, but if it is stored in themostPopulousCities
field, 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 themostPopulousCities
list 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
main
service andcountry
model andaddCountry
act. - we repeat this section 15 times.
- we captured
countryId
from last response of this sections. - here we used faker for create
name
,population
andabb
for new country.
- here we used
-
create multiple country with one request with
main
→country
→addCountries
:- here we used
main
service andcountry
model andaddCountries
act. - here we insert an array of
country
formultiCountries
key insideset
object. - we captured some country ID from request response.
- here we used
-
create new city with
main
→city
→addCity
:- here we used
iranId
the captured variable we get from request number 2 response. - we captured
body._id
with theharatId
from response.
- here we used
-
create multiple city with
main
→city
→addCities
:- here we insert an array of
city
formultiCities
key insideset
object. - here we used
iraqId
the 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
city
formultiCities
key insideset
object. We also usedfaker
here. - here we used
afghanId
the 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
haratId
andafghanId
captured variables. please checkmongodb compass
beacuase 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
isCapital
field 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:
Hamedan
andTehran
.
- 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
livedCities
relation 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
livedCities
relation of a user withmain
→user
→addUserLivedCities
: -
remove city from
livedCities
relation 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
mostLovedCity
relation of a user withmain
→user
→addMostLovedCity
: -
add a city to
mostLovedCity
relation of a user withmain
→user
→addMostLovedCity
: -
remove a city from
mostLovedCity
relation 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 & Description
toREQUEST & RESULT
- show some description about sequence including request number & timing, captured value and so on.
- show unparsed
header
andbody
you send to the backend. - show the
index
of each sequence. - show
response
get back from server. - show parsed request you send to server, including parsed
header
andbody
. - 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,000
cities withmain
→city
→addCities
: -
create
50,000
users 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:
filters
which is mongodb findOne query operationprojection
which is mongodb projection operation- and optional
option
which 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:
filters
which is mongodb filter query operationprojection
which is mongodb projection operation- and optional
option
which 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:
Delete
all these documentsrelated
to thiscountry
one by one.- Set the
hardCascade
option totrue
in thedeleteOne
function. 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
multiCities
input is anarray
ofpure
city
fieldobjects
. 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
addCities
function is executed, all data, includingmultiCities
, isvalidated
. This feature allows us tovalidate
thewrong
databefore
sending anycommand
to thedatabase
. -
The second point is that we explicitly set the
capital
relation in the cityrelatedRelation
tofalse
. Because we do not know whichcity
is going to be chosen as thecapital
. In general,one-to-one
relations ininsertMany
should always befalse
because they destroy the concept ofinsertMany
and cause itsrelatedRelations
to be updatedonce
for 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-many
relationship betweenusers
andcountries
, that is, thecountry
field receives anID
, and after finding the relevantcountry
, itspure
fields are stored in theuser
. On thecountry
side, in two multiple lists, the user is stored once with ID sorted from last to first(users
field) and once with age sorted from oldest to youngest(usersByAge
). -
Also,
users
have amany-to-many
relationship with thecities
they have lived in and receive a set of cityIDs
, and after finding thosecities
, thepure
fields of each one are stored in an array calledlivedCities
.On thecity
side, thepure
fields of the enteredusers
are stored in theusers
field for eachcity
. -
The
user
has anotherrelationship
with thecity
, which is aone-to-many
relationship. In this way, theuser
saves thecity
he likes the most in themostLovedCity
field. And on thecity
side, the list of enteredusers
is 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
static
document.
In order to receive astatic
document with aGET
request, you must first allow itspath
to Lesan, for this you only need to add the following settings when calling therunServer
function:coreApp.runServer({ staticPath: ["/pictures", "/videos"] });
The
staticPath
key receives anarray
ofstrings
Now all the files in the
pictures
orvideos
folder will be accessible by sending aGET
request, for example:https://www.xyz.com/pictures/avatar.png
-
Requests sent to receive
playground static
documents or access to theplayground
itself.
In order to access theplayground
, you must set theplayground
entry in therunServer
function equal totrue
.coreApp.runServer({ playground: true });
The
playground
key receives aboolean
value.Now you can access the
playground
by sending aGET
request to an address similar tohttp://localhost:1367/playground
.
Note that the following addresses will be accessible together with theplayground
and will send the necessarydata
to run theplayground
:- /playground/static/index.css
which sends the necessarystyles
for theUI
in theplayground
. - /playground/static/bundle.js
which sends aJS bundle
of all the codes needed to run theplayground
. - /playground/static/get/schemas
which sends twoJSON
data,schemas
andacts
, which contain all the information we need in theplayground
to sendrequests
to theserver
.
- /playground/static/index.css
POST Requests:
We accept two models of POST
requests:
- Requests sent to
receive data
from theserver
(in fact, these requests are the main requests sent to Lesan). - Requests sent to
upload
a 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
service
key is used to select one of themicroservices
set on the application. This key is optional and by default the value ofmain
is placed in it. - The
model
key is used to select one of theModels
added to the application. - The
act
key is used to select one of theActs
added to the application. - The
details
key 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 calledget
andset
, we talked a little about it before.set
: It contains the information we need in theAct
function.get
: Contains selected information that the user needs to be returned. This selection is based onzero
orone
. 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
GQL
language in GraphQL). - Instead of implementing complex logic to
filter
fields selected by the user, we use the logic implemented within databases (hereAggregation
in MongoDB). Because algorithms implemented within databases have more scalability and efficiency due to direct data communication. - We store all relationships in data as
embedded
to 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-side
logic so that we can create more efficient data models in theNoSQL
style. 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 anindexed
query. -
After that, we run a query to find the
capital
, because we have itsID
stored in the country, we run anindexed
query. -
Then we send a query to find the first paginate of
provinces
. If we have stored theID
of all the provinces of a country inside it, we run an indexed query. Otherwise, we must send annon-index
query with the country ID filter found. -
Continuing with the example, if we had found
30
of the first paginateprovinces
. We should send anon-index
query with a provinceID
filter for each one on each city and find the first paginatedcities
for each of the provinces. (For example,50
for each province, which means50
times30
) -
Finally, to find the first paginate
cities
for this country too, we need to send anon-index
query with theID
filter of the foundcountry
on 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
database
from scratch to achieve at least the following points:-
give what we receive from the customer on the
client side
to the database so that we do not have any additional processing for analyzing the request. -
Embed
all 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
one
query
-
-
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,
Mongodb
met all our needs for at least three reasons:- Mongodb is a
NoSQL
database and that’s exactly what we were looking for. - The process of selecting recursive fields from this database, namely
projection
, is a standardobject
with thefield name
key and a value ofzero or one
, and we could ask the sameobject
from the customer on theclient side
without 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 onlyone
request for any amount of data we wanted. It was enough to create helper functions for building requestpipelines
in 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 changed
and an unnecessary processing task is imposed on the server which can cause problems if thenumber
of 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
necessary
to quickly update that content everywhere, including places whereSSG
content is stored. But in current processes, we have towait
until the time we have set in advance ends and sendanother
request to the server to update theSSG
content.
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
Lesan
framework, for example (this sample is written in TypeScript):
const ecommerceApp = lesan();
- We write the
model
we want for the software using thepure
andrelations
object and add it to ourODM
application. Like this (consider the same information we mentioned in the above example forcountry
andcities
):
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
validator
for 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
validator
functiongetCitiesValidator
has anobject
with keysset
andget
. Theset
key is used for information that we need tofilter
andlimit
cities, and as you saw ingetCitiesFn
, this information has been used. But the value of theget
key is what we need to penetrate into its depth. This value must be anobject
of a model that accurately specifies the degree of penetration into each of therelationships
of thatmodel
(here incity
modelr. Here theget
key is generated by a function calledselectStruct
. This function has two inputs. The first input is the name of themodel
for which we want to generate thisobject
, and the second input specifies thedegree
of penetration into eachrelationship
. The second input of theselectStruct
function can be entered as anumber
or anobject
. If entered as anobject
, thekeys
of this object must be thenames
of the selected modelrelationships
, and its value can again be anumber
or anobject
of 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 thegetMainActs
function 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:
filters
which is mongodbfilter query operation
projection
which is mongodbprojection operation
- and
optional
option 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:
filters
which is mongodb findOne query operationprojection
which is mongodb projection operation- and optional
option
which 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
doc
key receives an object of the pure values of the selected model.OptionalUnlessRequiredId
type is thedocument
type in the official MongoDB driver. You can read about it here. - The
relations
key receives an object from the relations of this model. There is no relationship here. We will read about this in the next section. - The
options
key gets the official MongoDB driver options to insertOne. You can read more about this here - The
projection
key 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:
TInsertRelations
Projection
Filter
replace
: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:
filters
which is mongodbfilter query operation
update
which is mongodbprojection operation
- and
optional
option 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:
filter
which is mongodb deleteOne query operation- and optional
option
which 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:
pipeline
which is mongodbpipline array document
projection
which is mongodbprojection operation
- and
optional
option 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