mongoosejs-model
v0.0.20
Published
Define mongodb schema and documents by object oriented structure
Downloads
12
Maintainers
Readme
Mongoose.js model manager by javascript class
Installation instruction:
npm install mongoosejs-model
Use:
Connect to databse
const mongoose = require("mongoose");
const startDatabase = () => {
return new Promise((resolve, reject) => {
mongoose.connect(uri)
.then(() => {
console.log("💪 connected to DB.");
resolve();
})
.catch(err => {
console.log("DB connection error:", err);
startDatabase();
reject(err);
});
});
};
const { init } = require("mongoosejs-model");
init(require("mongoose"));
Define field
const { Field } = require("mongoosejs-model");
let field1 = new Field({
isRequire: true,
isArray: true,
default: ["test"],
type: String,
});
Define enum
const { Enum } = require("mongoosejs-model");
let field1 = new Enum({
multi: false,
default: "E1",
keys: ["E1", "E2"],
});
OR
const { Enum } = require("mongoosejs-model");
let field2 = new Enum({
multi: true,
default: ["E1"],
keys: ["E1", "E2"],
});
Define model as subdocument:
const { Model, Field } = require("mongoosejs-model");
class Person extends Model {
firstName = new Field({ isRequire: true, type: String });
lastName = new Field({ isRequire: true, type: String });
}
Model enum methods:
Define model as collection
Inheritance models
Define virtual fields
Use collection methods
Define collection methods
Create new document
Use aggregation in collection methods
Sort result (by aggregation)
Filter result (by aggregation)
Complecated filters
Filter operators
- Key part:
| No. | Symbol | Operator | Sample | | ----- | --------- | ----------------- | ---------------------------- | | 1 | | | Or | {"firstName|lastName": ...} | | 2 | ! | Not | {"gender!": ...} | | 3 | > | Greater | {"age>": ...} | | 4 | >= | Greater Or Equal | {"age>=": ...} | | 5 | > | Less | {"age<": ...} | | 6 | >= | Less Or Equal | {"age<=": ...} |
- Value part:
| No. | Symbol | Operator | Sample | | --- | ------- | ---------- | ---------------------------- | | 1 | | | Or | {...: "gonjishke|gandomi"} |
- Mix:
{
"firstName|lastName": "gonjishke|gandomi"
}