@contentstack/datasync-content-store-mongodb

    1.0.1 • Public • Published

    Contentstack

    Contentstack is a headless CMS with an API-first approach. It is a CMS that developers can use to build powerful cross-platform applications in their favorite languages. Build your application frontend, and Contentstack will take care of the rest. Read More.

    Contentstack DataSync Content Store MongoDB

    Contentstack DataSync lets you sync your Contentstack data with your database, enabling you to save data locally and serve content directly from your database. It is a combination of four powerful modules that is DataSync Webhook Listener, DataSync Manager, DataSync Asset Store Filesystem, DataSync Content Store — Filesystem and MongoDB.

    The Cotentstack MongoDB Content Store is part of Contentstack DataSync's content storage drivers and is used to store data in the MongoDB database. Any publish, unpublish, or delete action performed on content will be tracked by the Webhook Listener and the relevant content will be synced accordingly in your MongoDB database.

    Prerequisite

    • Nodejs v8 or above
    • Mongodb v3.6 or above

    Usage

    This is how the datasync-content-store-filesystem is defined in the boilerplate:

    const assetStore = require('@contentstack/datasync-asset-store-filesystem')
    const contentStore = require('@contentstack/datasync-content-store-mongodb')
    const listener = require('@contentstack/webhook-listener')
    const syncManager = require('@contentstack/datasync-manager')
    const config = require('./config')
     
    syncManager.setAssetStore(assetStore)
    syncManager.setContentStore(contentStore)// Sets required asset store to sync manager.
    syncManager.setListener(listener)
    syncManager.setConfig(config)
     
    syncManager.start()
    .then(() => {
        console.log('Contentstack sync started successfully!')
    })
    .catch(console.error)

    Configuration

    Here is the config table for the module:

    Property Data Type Default value Description
    dbName string contentstack-persistent-db Optional. The MongoDB database name
    collectionName string contents Optional. MongoDB database's collection name
    uri string mongodb://localhost:27017 Optional. The MongoDB connection URI
    indexes object see config below Optional. Option to create db indexes via configuration
    unwantedKeys object see config below Optional. Keys to be removed, while data is being inserted
    options object see config below Optional. The MongoDB connection options

    Detailed configs

    By default, this module uses the following internal configuration.

    {
      dbName: 'contentstack-persistent-db',
      collectionName: 'contents',
      uri: 'mongodb://localhost:27017',
      indexes: {
        published_at: -1,
        content_type_uid: 1,
        locale: 1,
        uid: 1
      },
      unwantedKeys: {
        asset: {
          action: true,
          checkpoint: true,
          'data.created_by': true,
          event_at: true,
          type: true,
          'data.updated_by': true
        },
        contentType: {
          'data.created_by': true,
          'data.updated_by': true,
          'data.DEFAULT_ACL': true,
          'data.SYS_ACL': true,
          'data.abilities': true,
          'data.last_activity': true
        },
        entry: {
          action: true,
          checkpoint: true,
          'data.created_by': true,
          event_at: true,
          type: true,
          'data.updated_by': true
        }
      },
      options: {
        autoReconnect: true,
        connectTimeoutMS: 15000,
        keepAlive: true,
        noDelay: true,
        reconnectInterval: 1000,
        reconnectTries: 20,
        useNewUrlParser: true,
      },
    }

    Further Reading

    Support and Feature requests

    If you have any issues working with the library, please file an issue here at Github.

    You can send us an e-mail at support@contentstack.com if you have any support or feature requests. Our support team is available 24/7 on the intercom. You can always get in touch and give us an opportunity to serve you better!

    License

    This repository is published under the MIT license.

    Install

    npm i @contentstack/datasync-content-store-mongodb

    DownloadsWeekly Downloads

    10

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    75.7 kB

    Total Files

    37

    Last publish

    Collaborators

    • shafeeqd959
    • mynk
    • kego1992
    • roshangade
    • iyerrama29
    • uukkoji
    • cloudaccounts
    • gautam.lodhiya
    • hiteshshetty