- Jan 2024
-
mongoosejs.com mongoosejs.com
-
Instance methods Instances of Models are documents. Documents have many of their own built-in instance methods. We may also define our own custom document instance methods. // define a schema const animalSchema = new Schema({ name: String, type: String }, { // Assign a function to the "methods" object of our animalSchema through schema options. // By following this approach, there is no need to create a separate TS type to define the type of the instance functions. methods: { findSimilarTypes(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); } } }); // Or, assign a function to the "methods" object of our animalSchema animalSchema.methods.findSimilarTypes = function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); }; Now all of our animal instances have a findSimilarTypes method available to them. const Animal = mongoose.model('Animal', animalSchema); const dog = new Animal({ type: 'dog' }); dog.findSimilarTypes((err, dogs) => { console.log(dogs); // woof }); Overwriting a default mongoose document method may lead to unpredictable results. See this for more details. The example above uses the Schema.methods object directly to save an instance method. You can also use the Schema.method() helper as described here. Do not declare methods using ES6 arrow functions (=>). Arrow functions explicitly prevent binding this, so your method will not have access to the document and the above examples will not work.
Certainly! Let's break down the provided code snippets:
1. What is it and why is it used?
In Mongoose, a schema is a blueprint for defining the structure of documents within a collection. When you define a schema, you can also attach methods to it. These methods become instance methods, meaning they are available on the individual documents (instances) created from that schema.
Instance methods are useful for encapsulating functionality related to a specific document or model instance. They allow you to define custom behavior that can be executed on a specific document. In the given example, the
findSimilarTypes
method is added to instances of theAnimal
model, making it easy to find other animals of the same type.2. Syntax:
Using
methods
object directly in the schema options:javascript const animalSchema = new Schema( { name: String, type: String }, { methods: { findSimilarTypes(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); } } } );
Using
methods
object directly in the schema:javascript animalSchema.methods.findSimilarTypes = function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); };
Using
Schema.method()
helper:javascript animalSchema.method('findSimilarTypes', function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); });
3. Explanation in Simple Words with Examples:
Why it's Used:
Imagine you have a collection of animals in your database, and you want to find other animals of the same type. Instead of writing the same logic repeatedly, you can define a method that can be called on each animal instance to find similar types. This helps in keeping your code DRY (Don't Repeat Yourself) and makes it easier to maintain.
Example:
```javascript const mongoose = require('mongoose'); const { Schema } = mongoose;
// Define a schema with a custom instance method const animalSchema = new Schema({ name: String, type: String });
// Add a custom instance method to find similar types animalSchema.methods.findSimilarTypes = function(cb) { return mongoose.model('Animal').find({ type: this.type }, cb); };
// Create the Animal model using the schema const Animal = mongoose.model('Animal', animalSchema);
// Create an instance of Animal const dog = new Animal({ type: 'dog', name: 'Buddy' });
// Use the custom method to find similar types dog.findSimilarTypes((err, similarAnimals) => { console.log(similarAnimals); }); ```
In this example,
findSimilarTypes
is a custom instance method added to theAnimal
schema. When you create an instance of theAnimal
model (e.g., a dog), you can then callfindSimilarTypes
on that instance to find other animals with the same type. The method uses thethis.type
property, which refers to the type of the current animal instance. This allows you to easily reuse the logic for finding similar types across different instances of theAnimal
model.
Tags
Annotators
URL
-
- May 2019
-
sg.inflibnet.ac.in sg.inflibnet.ac.in
-
stranded DNA. The reaction was carried out at 37°C for 1 h. The reaction mixture contained 100 ng Bgl II digested VR1020 vector, SAP (0.5 U) and 1 fll lOX SAP buffer (20 mM Tris-HCl, pH 8.0, 10 mM MgCh) in 10 f.!l oftotal reaction volume. The reaction was stopped by inactivating the enzyme at 65°C for 15 min. The digested bmZP1 eDNA was ligated with SAP treated VR1 020 at vector : insert ratio of 1:10 in a 10 fll reaction volume for 16 h at l6°C. The reaction mixture contained 10 ng VR1020 vector, 26 ng bmZPl insert, 1 fll lOX ligase quffer (30 mM Tris-HCl, pH 7.8, 10 mM MgCh, 10 mM DTT and 1 mM ATP), lfll T4 DNA ligase (20 U) in a total reaction volume of 10 fll. The ligation product was used for transformation of DH5a competent cells as described previously. Transformants were selected on LB plates containing 50 f.!g/ml Kanamycin (Kan). Similarly, the inserts corresponding to dZP3, rG and dZP3-rG fusion were digested with Bgl II restriction enzyme, gel purified and cloned in VR1020 vector, except that the ligation product of dZP3-rG fusion with VR1020 was transformed into JM109 competent cells
-
The insert corresponding to bmZP1 was released from the pPCR-Script-bmZPl clone by Bgl II restriction and purified on the agarose gel. VR1020 vector was similarly digested and gel purified. To prevent self-ligation, the digested vector was treated with Shrimp Alkaline Phosphatase (SAP), which removes 5'-phosphate from the termini of double
-
Cloning in VRl 020 mammalian expression vector
-
-
shodhganga.inflibnet.ac.in shodhganga.inflibnet.ac.in
-
MeancellVolume(MCV).Itisexpressedinfentolitres(1fentolitreorflisequivalentto10'151)andcalculatedby thefollowingformula:PCVMCV=.....................x10(fl)RBC8.10.6.2.MCHMeancellhaemoglobin(MCH)=AverageweightofHbinanerythrocyte.Itisexpressedinpicograms(pg)whichisequivalentto10"12g.Itiscalculatedbythefollowingformula:HbMCH=-----------------x10(ppg)RBC
-
MCV
-
BloodwastakenbyheartpunctureusingMS222astheanaesthetic.Nofishwasusedmorethanonce.
-
CollectionofBlood
-
-
sg.inflibnet.ac.in sg.inflibnet.ac.in
-
3.0–5.0, phosphate buffer for pH 6.0–8.0 and Tris-HCl buffer for pH 9.0) were used. •pH stability: The pH stability of the selected tannases was examined in the range of 3.0–9.0 by incubating the enzyme samples for 6 h in different buffers. Tannase activity was estimated under standard assay conditions. •Temperature tolerance: Temperature tolerance of the tannases was examined by assaying their activity at different temperatures in the range of 20 to 80ºC. •Temperature stability: Temperature stability of the tannases was determined by incubating them in the temperature range of 20 to 70 ºC for 6 h. After the incubation tannase activity (%) was determined under standard assay conditions. •Organic solvent stability: In order to determine the suitability of the selected tannases for organic synthesis, their stability was determined in different organic solvents. Experimentally, 10 mg of each of the crude lyophilized tannase from the selected cultures were mixed with 1.0 ml of the following organic solvent: a) Hexane b) Methanol c) Propanol d) Isoamyl alcohol e) Petroleum ether f ) Chloroform The mixture was incubated for 6 h at optimal temperature and the organic solvents were then decanted and the residues were dried in a vacuum desiccator. These dried samples were dissolved in 1.0 ml of citrate phosphate buffer (50 mM, pH 5.0) and the tannase activity was determined under standard assay conditions. The tannase activity thus obtained from each culture were compared with initial tannase activity. Finally, on the basis of tannase titres produced per ml and desirable biochemical properties, the best tannase producer was selected for further investigations
-
The tannases obtained (at high titres) from selected cultures were evaluated for the following important biochemical properties. 1. pH tolerance and stability 2. Temperature tolerance and stability 3. Organic solvent stability •pH tolerance: pH-tolerance of the selected tannases was examined in the range of 3.0–9.0. Buffers (0.05 M) of different pH (citrate phosphate for pH
-
Preliminary biochemical characterization of tannases from the potent tannase producers
-