Mongoose Elastic is a mongoose plugin that can automatically index your models into elasticsearch.
Install the package.
npm i @selego/mongoose-elastic
Setup your mongoose model to use the plugin.
const { Client } = require("@elastic/elasticsearch");
const mongoose = require("mongoose");
const mongooseElastic = require("@selego/mongoose-elastic");
const client = new Client({ node: "http://localhost:9200" });
const User = new mongoose.Schema({
name: String,
email: String,
city: String,
});
User.plugin(mongooseElastic(client), "user");
module.exports = mongoose.model("user", User);
Then, use your mongoose model as usual:
const user = new User({ name: "Raph" });
user.save().then(() => {
console.log("user saved on mongo, elastic sync is on its way");
});
There are some competitors, still, most of them are abandonned or suffering from their legacy.
- mongoosastic is looking for maintainers since 2018 and has to deal with legacy.
- mongoose-elasticsearch has been abandonned in 2014.
- mongoose-elastic has been discontinued in 2014 and repo is deleted.