Promises in Mongoose
In this post, we will give you information about Promises in Mongoose. Here we will give you detail about Promises in Mongoose And how to use it also give you a demo for it if it is necessary.
Mongoose has built-in support for promises. In Mongoose 5, async operations like .save()
and .find().exec()
return a promise unless you pass a callback.
const Model = mongoose.model('Test', Schema({
name: String
}));
const doc = new Model({ name: 'Neo' });
const promise = doc.save();
promise instanceof Promise; // true
const res = doc.save(function callback(err) {
/*...*/
});
res; // undefined
The mongoose.Promise
Property for Promises in Mongoose
The Mongoose singleton has a Promise
property that you can use to set the promise library Mongoose uses. For example, you can make Mongoose use the popular Bluebird promise library:
const Bluebird = require('bluebird');
// Make Mongoose use Bluebird instead of built-in promises.
mongoose.Promise = Bluebird;
const doc = new Model({ name: 'Neo' });
const promise = doc.save();
promise instanceof Promise; // false
promise instanceof Bluebird; // true
If you haven’t upgraded to Mongoose 5 yet, you might see the below
deprecation warning in Mongoose 4.x:
WARNING: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead
To resolve that deprecation warning, you would add the below code:
mongoose.Promise = global.Promise;
That’s because one of the breaking changes in Mongoose 5 was switching to
using Node.js’ native promises. Mongoose 4 was released before ES6, so it
had its own promise implementation that was slightly different from native JavaScript promises.
If you see mongoose.Promise = global.Promise
in code that uses Mongoose 5,
please delete it. Mongoose 5 uses native promises by default, so that code
does nothing in Mongoose 5.
Queries are not Promises for Promises in Mongoose
While save()
returns a promise, functions like Mongoose’s find()
return a Mongoose Query
.
const query = Model.find();
query instanceof Promise; // false
query instanceof mongoose.Query; // true
Mongoose queries are thenables.
In other words, queries have a then()
function that behaves similarly to the Promise then()
function. So you can use queries with promise chaining and async/await.
// Using queries with promise chaining
Model.findOne({ name: 'Mr. Anderson' }).
then(doc => Model.updateOne({ _id: doc._id }, { name: 'Neo' })).
then(() => Model.findOne({ name: 'Neo' })).
then(doc => console.log(doc.name)); // 'Neo'
// Using queries with async/await
const doc = await Model.findOne({ name: 'Neo' });
console.log(doc.name); // 'Neo'
Want to become your team’s MongoDB expert? “Mastering Mongoose” distills 8 years of hard-earned lessons building Mongoose apps at scale into 153 pages. That means you can learn what you need to know to build production-ready full-stack apps with Node.js and MongoDB in a few days.
Get your copy!
A mongoose is a small, carnivorous mammal that is found in Africa, Asia, and southern Europe. They are known for their ability to kill venomous snakes, and they have been used for centuries to control snake populations. Mongooses are also popular pets, but they can be difficult to care for and are not recommended for everyone.
Here are some of the pros and cons of owning a mongoose:
Pros:
- Mongooses are intelligent and can be trained to do tricks.
- They are relatively small and easy to care for.
- They can be effective at controlling snake populations.
Cons:
- Mongooses can be aggressive and unpredictable.
- They are not legal to own in some places.
- They can carry diseases, such as rabies.
If you are considering getting a mongoose as a pet, it is important to do your research and make sure that you are prepared to provide the proper care. Mongooses are not for everyone, but they can make great companions for the right people.
Here are some additional facts about mongooses for Promises in Mongoose:
- They are about the size of a cat, with long bodies and tails.
- They have sharp claws and teeth, which they use to catch and kill prey.
- They are active during the day and night.
- They eat a variety of foods, including snakes, rodents, insects, and fruit.
- Mongooses live in a variety of habitats, including forests, grasslands, and deserts.
- They are solitary animals, but they will sometimes gather in groups to hunt.
- Mongooses are monogamous, and they mate for life.
- Females give birth to litters of 2-4 young.
- Mongooses reach sexual maturity at about 6 months old.
- They have a lifespan of about 10 years.
Hope this code and post will helped you for implement Promises in Mongoose – onlinecode. if you need any help or any feedback give it in comment section or you have good idea about this post you can give it comment section. Your comment will help us for help you more and improve us. we will give you this type of more interesting post in featured also so, For more interesting post and code Keep reading our blogs