33 Matching Annotations
  1. Jan 2024
    1. 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 the Animal 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 the Animal schema. When you create an instance of the Animal model (e.g., a dog), you can then call findSimilarTypes on that instance to find other animals with the same type. The method uses the this.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 the Animal model.

      Certainly! Let's go through each part and explain it in simple terms: ### 1. `this` in Mongoose: - **What is `this`?** In JavaScript, `this` refers to the current context or object. In Mongoose, particularly within methods and middleware functions, `this` represents the instance (document) the function is currently operating on. - **Why is it used?** `this` is used to access and modify the properties of the current document. For example, in a Mongoose method, `this` allows you to refer to the fields of the specific document the method is called on. ### 2. Example: Let's use the `userSchema.pre("save", ...)`, which is a Mongoose middleware, as an example: ```javascript userSchema.pre("save", async function (next) { if (!this.isModified("password")) { next(); } else { this.password = await bcrypt.hash(this.password, 10); next(); } }); ``` - **Explanation in Simple Words:** - Imagine you have a system where users can sign up and set their password. - Before saving a new user to the database, you want to ensure that the password is securely encrypted (hashed) using a library like `bcrypt`. - The `userSchema.pre("save", ...)` is a special function that runs automatically before saving a user to the database. - In this function: - `this.isModified("password")`: Checks if the password field of the current user has been changed. - If the password is not modified, it means the user is not updating their password, so it just moves on to the next operation (saving the user). - If the password is modified, it means a new password is set or the existing one is changed. In this case, it uses `bcrypt.hash` to encrypt (hash) the password before saving it to the database. - The use of `this` here is crucial because it allows you to refer to the specific user document that's being saved. It ensures that the correct password is hashed for the current user being processed. In summary, `this` in Mongoose is a way to refer to the current document or instance, and it's commonly used to access and modify the properties of that document, especially in middleware functions like the one demonstrated here for password encryption before saving to the database.

    Tags

    Annotators

    URL

    1. There is also #8988 (closed) about custom fields. It there is some flexible architecture like in Drupal - all entities can have custom fields (and some form widget and some formatter), so building other features what needs to store data is more simple.
    1. a special case of Hasse’s theorem, due to Gauss, which de-scribes the number of points on an elliptic curve defined over a finite field.
  2. Nov 2023
    1. In a scenario that hits global net zero emissions by 2050, declines in demand are sufficiently steep that no new long lead-time conventional oil and gas projects are required. Some existing production would even need to be shut in. In 2040, more than 7 million barrels per day of oil production is pushed out of operation before the end of its technical lifetime in a 1.5 °C scenario.
      • for: stats - oil and gas industry - steep drop in production

      • stats - oil and gas industry - steep drop in production

        • no new fields can be developed to meet a 1.5 Deg C scenario
        • any new developments face the certain risk of being a stranded asset
        • by 2040, 7 million less barrels of oil are produced each day to meet a 1.5 Deg C scenario
  3. Sep 2023
  4. May 2023
  5. Feb 2023
    1. | physics/mathematics | Classical Physics | Quantum Mechanics |<br /> |---|---|---|<br /> | State Space | fields satisfying equations of laws<br>- the state is given by a point in the space | vector in a complex vector space with a Hermitian inner product (wavefunctions) |<br /> | Observables | functions of fields<br>- usually differential equations with real-valued solutions | self-adjoint linear operators on the state space<br>- some confusion may result when operators don't commute; there are usually no simple (real-valued) numerical solutions |

  6. Oct 2022
    1. https://ymlaenwelsh.com/2018/11/11/on-word-field-farming/

      Creating world fields (groups of words related to a particular area or field of knowledge) can be helpful for acquiring vocabulary in a new language. There's no research here to back up the claim, but it's an interesting word game and method for familiarize oneself with a small area and acquire new words related to an area or various related stem words.

  7. Feb 2022
    1. a region around a charged particle or object within which a force would be exerted on other charged particles or objects.Translate electric field toChoose languageAfrikaansAlbanianAmharicArabicArmenianAzerbaijaniBanglaBasqueBelarusianBosnianBulgarianBurmeseCatalanCebuanoChinese (Simplified)Chinese (Traditional)CorsicanCroatianCzechDanishDutchEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHawaiianHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKinyarwandaKoreanKurdishKyrgyzLaoLatinLatvianLithuanianLuxembourgishMacedonianMalagasyMalayMalayalamMalteseMāoriMarathiMongolianNepaliNorwegianNyanjaOdiaPashtoPersianPolishPortuguesePunjabiRomanianRussianSamoanScottish GaelicSerbianShonaSindhiSinhalaSlovakSlovenianSomaliSouthern SothoSpanishSundaneseSwahiliSwedishTajikTamilTatarTeluguThaiTurkishTurkmenUkrainianUrduUyghurUzbekVietnameseWelshWestern FrisianXhosaYiddishYorubaZulu

      Electric Field

    1. Electric potential energy is the energy that is needed to move a charge against an electric field. You need more energy to move a charge further in the electric field, but also more energy to move it through a stronger electric field.

      EPE

  8. Dec 2021
  9. Apr 2021
  10. Mar 2021
    1. In computer science, a tree is a widely used abstract data type that simulates a hierarchical tree structure

      a tree (data structure) is the computer science analogue/dual to tree structure in mathematics

  11. Jan 2021
  12. Dec 2020
    1. Guard fields proved invaluable for breaking cycles[5], a central anxiety of early hypertext [18][11].

      Storyspace used a scripting language to create what they called "Guard Fields" — boolean logic that will make a link clickable or not based on the pages the reader had already visited up until that point.

      What is interesting is that guard fields proved effective at breaking cycles (one of the risks of disorientation in hypertext).

  13. Sep 2020
  14. Dec 2019
    1. It's not customizable enough and there aren't enough distinct fields for inevitably complex work tasks. Google Sheets fixes that. No, it's not a to do list app, but that's why I love it. It's an app I already use. It's extremely customizable.
  15. Nov 2019
    1. So the main thing this gives us is a way to set indeterminate property of input via an indeterminate property?

      This is misnamed. Doesn't actually give us a tri-state checkbox. Just a binary checkbox.

    1. input.indeterminate = indeterminate

      So the main thing this gives us is a way to set indeterminate property of input via an indeterminate property?

      Not sure how that supposedly gives us a tri-state checkbox.

  16. Aug 2019
  17. Jan 2019
    1. ‘supra-disciplinary’ character.

      Rhetoric, too, is a supra-disciplinary field, to the extent that it's sometimes mistaken as not even having a 'subject' (re: the protest that you can't teach writing until students have enough of a subject to write about under their belts first).

  18. Aug 2018
    1. happy Fields

      The happy fields were the Elysian fields where a select few, favored by the gods, got to go after death, whereas most people went to Hades (NOT hell, but not pleasant either).