Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/meabed/mongoosastic-ts
Index Mongoose models into elasticsearch automatically.
https://github.com/meabed/mongoosastic-ts
elasticsearch mongoose nodejs typescript
Last synced: 15 days ago
JSON representation
Index Mongoose models into elasticsearch automatically.
- Host: GitHub
- URL: https://github.com/meabed/mongoosastic-ts
- Owner: meabed
- License: mit
- Created: 2021-10-24T05:53:19.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T14:25:43.000Z (16 days ago)
- Last Synced: 2024-10-29T17:21:50.759Z (16 days ago)
- Topics: elasticsearch, mongoose, nodejs, typescript
- Language: TypeScript
- Homepage:
- Size: 2.92 MB
- Stars: 9
- Watchers: 3
- Forks: 1
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Authors: AUTHORS
Awesome Lists containing this project
README
# mongoosastic-ts
[![Build Status 7](https://github.com/meabed/mongoosastic-ts/actions/workflows/ci-7.yml/badge.svg)](https://github.com/meabed/mongoosastic-ts/actions/workflows/ci-7.yml)
[![Build Status 8.0](https://github.com/meabed/mongoosastic-ts/actions/workflows/ci-8-0.yml/badge.svg)](https://github.com/meabed/mongoosastic-ts/actions/workflows/ci-8-0.yml)
[![Build Status 8.2](https://github.com/meabed/mongoosastic-ts/actions/workflows/ci-8-2.yml/badge.svg)](https://github.com/meabed/mongoosastic-ts/actions/workflows/ci-8-2.yml)
[![Build Status 8.5](https://github.com/meabed/mongoosastic-ts/actions/workflows/ci-8-5.yml/badge.svg)](https://github.com/meabed/mongoosastic-ts/actions/workflows/ci-8-5.yml)
[![Build Status 8.6](https://github.com/meabed/mongoosastic-ts/actions/workflows/ci-8-6.yml/badge.svg)](https://github.com/meabed/mongoosastic-ts/actions/workflows/ci-8-6.yml)
[![NPM version](https://img.shields.io/npm/v/mongoosastic-ts.svg)](https://www.npmjs.com/package/mongoosastic-ts)
[![Downloads](https://img.shields.io/npm/dm/mongoosastic-ts.svg)](https://www.npmjs.com/package/mongoosastic-ts)
[![UNPKG](https://img.shields.io/badge/UNPKG-OK-179BD7.svg)](https://unpkg.com/browse/mongoosastic-ts@latest/)#### mongoosastic-ts is a [mongoose](http://mongoosejs.com/) plugin that can automatically index your models into [elasticsearch](https://www.elastic.co/).
> This package is forked version from [mongoosastic](https://github.com/mongoosastic/mongoosastic)
>
> It has been updated and migrated to typescript and updated dependencies and codebase to the latest packages#### Support elasticsearch 7.x and 8.x
### Getting started
1. Install the package
```bash
npm install -S mongoosastic-ts
```2. Setup your mongoose model to use the plugin
```typescript
import { mongoosastic } from 'mongoosastic-ts';
import { MongoosasticDocument, MongoosasticModel, MongoosasticPluginOpts } from 'mongoosastic-ts/dist/types';
import { Document, Schema, model } from 'mongoose';export interface IBookModel extends Document, MongoosasticDocument {
title?: string;
}const BookSchema = new Schema({
title: {
type: String,
required: true,
},
});BookSchema.plugin(mongoosastic, {
index: 'books',
type: 'book',
} as MongoosasticPluginOpts);export const bookModel = model>('Book', BookSchema);
```3. Query your Elasticsearch with the `search()` method (added by the plugin)
```typescript
const results = await bookModel.search({
query_string: {
query: "john"
});
// do something with elastic search results
```_NOTE_: You can also query Elasticsearch with any other method. Example:
```bash
curl http://localhost:9200/users/user/_search
```### Documentation
[View docs](docs/README.md)