Powerful visual editor for MongoDB ODM

Import, edit and export MongoDB ODM definitions just in a few clicks.

Speed up your work and avoid routine.

  • Entity
  • Bundle
  • Project
Skipper diagram - entity Skipper diagram - bundle Skipper diagram - project

1.Visually edit your project model.

  • Annotations
  • XML
  • YML
<?php
use Doctrine\ODM\MongoDB\Mapping\Annotations AS ODM;
 
/**
 * @ODM\Document(collection="my_documents")
 * @ODM\ChangeTrackingPolicy("DEFERRED_IMPLICIT")
 * @ODM\HasLifecycleCallbacks
 */
class EcommerceOrder
{
    /**
     * @ODM\Id(strategy="NONE")
     * @ODM\GeneratedValue(strategy="SEQUENCE")
     */
    private $id;
 
    /**
     * @ODM\Field(type="datetime", nullable=true)
     */
    private $ordered_at;
 
    /**
     * @ODM\Field(type="string", nullable=true)
     */
    private $customer_note;
 
    /**
     * @ODM\Field(type="string", nullable=true)
     */
    private $internal_note;
 
    /**
     * @ODM\ReferenceOne(targetDocument="Address")
     */
    private $DeliveryAddress;
 
    /**
     * @ODM\ReferenceOne(targetDocument="Address")
     */
    private $BillingAddress;
}
<?xml version="1.0"?>
<doctrine-mongo-mapping
 xmlns="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping" 
 xsi="http://www.w3.org/2001/XMLSchema-instance" 
 schemaLocation="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping.xsd">
  <document 
	 name="EcommerceOrder" 
	 change-tracking-policy="DEFERRED_IMPLICIT">
    <field name="id" type="integer" length="4">
      <generator strategy="SEQUENCE"/>
    </field>
    <field name="ordered_at" type="datetime" nullable="true"/>
    <field name="customer_note" type="string" nullable="true" version="true"/>
    <field name="internal_note" type="string" nullable="true" version="true"/>
    <lifecycle-callbacks>
      <lifecycle-callback type="prePersist" method="prePersist"/>
    </lifecycle-callbacks>
    <reference-one field="DeliveryAddress" target-document="Address"/>
    <reference-one field="BillingAddress" target-document="Address"/>
    <options>
      <option name="charset" value="utf8"/>
      <option name="collate" value="utf8_unicode_ci"/>
    </options>
  </document>
</doctrine-mongo-mapping>
EcommerceOrder:
  type: document
  changeTrackingPolicy: DEFERRED_IMPLICIT
  fields:
    id:
      id: true
      type: integer
      length: 4
      generator:
        strategy: SEQUENCE
      options:
        unsigned: true
    ordered_at:
      type: datetime
      nullable: true
    customer_note:
      type: string
      nullable: true
      version: true
    internal_note:
      type: string
      nullable: true
      version: true
  options:
    charset: utf8
    collate: utf8_unicode_ci
  lifecycleCallbacks:
    prePersist: [prePersist]
  referenceOne:
    DeliveryAddress:
      targetDocument: Address
    BillingAddress:
      targetDocument: Address 

2.Export it to complete definition files.

Download 14-day trial version

Try Skipper for free. No credit card needed.


Why use Skipper

Simple Project import

Import of your existing MongoDB ODM projects can be done in just a few clicks thanks to sophisticated import wizard. With created visual model you will discover complete logic of a project simply and quickly.

Skipper file menu Skipper MongoDB ODM import wizard Skipper MongoDB ODM import wizard - definition files Skipper imported MongoDB ODM project

Definitions exported by one click

Export your MongoDB ODM project repeatedly and as many times as you need. Exported definitions in standardized and ready-to-use format need no further editing.

Skipper MongoDB ODM export settings Skipper MongoDB ODM export results MongoDB ODM definitions exported by Skipper

Editing in visual interface

Editing of all objects is intuitive thanks to smart wizards and dialogs. Every change of model is properly reflected in the exported definition files.

Skipper entity editor for MongoDB ODM Skipper bundle editor for MongoDB ODM Skipper Association editor for MongoDB ODM

Lower need of MongoDB ODM skills

With inbuilt value advisors, validators, assistants and definitions created via standardized templates you can stop worrying about MongoDB ODM syntax and keywords.

Skipper MongoDB ODM property editor - tracking policies, entity listener Skipper MongoDB ODM property editor - lifecycle callback Skipper editing MongoDB ODM fields

See all the features


Support for all MongoDB ODM features

Supported formats

Skipper supports all standard MongoDB ODM formats. Import and export XML, YML (YAML) as well as PHP annotations just in few clicks.


Skipper MongoDB ODM xml export result Skipper MongoDB ODM yml export result Skipper MongoDB ODM annotations export result

Entities and modules

Create, change or remove entities, fields and ORM properties just in the visual model. Differentiate logical units with many color palettes and simplify orientation in your model.

Skipper diagram of MongoDB ODM entities and associations Editing MongoDB ODM fields, associations and inheritance in Skipper Skipper visual model of MongoDB ODM project

Associations

Create all types of MongoDB ODM associations with smart wizards. Use one to one, one to many and many to many associations and define owner and inverse entity or MN entity and aliases.

Skipper MongoDB ODM Many-to-Many wizard Skipper MongoDB ODM Association wizard Skipper MongoDB ODM Many-to-Many editor Skipper MongoDB ODM Association editor

Embedded

Embedded is a special feature for MongoDB projects. You can create embedded just in a few clicks, intuitive wizard will guide you through this process.

Skipper MongoDB ODM inheritance wizard Skipper MongoDB ODM inheritance editor

Collections

Collections are the second special feature for MongoDB projects. Collection editor allows to add and delete entities from this collection. If the collection is empty, it is collection for any entity type.

Skipper MongoDB ODM Many-to-Many wizard

Inheritance

Easy to understand dialog guides you through MongoDB ODM inheritance creation. Edit inheritance type, discriminators and base and derived entity, all in one place.

Skipper MongoDB ODM inheritance wizard Skipper MongoDB ODM inheritance editor

Indexes

Create indexes and manage them with the help of intuitive Entity Editor. Specify all indexes you need and which fields are indexed by them.

Skipper MongoDB ODM index editor

ORM Properties

Alter all model properties in accordance to your needs. Skipper unique Property Editor provides quick and easy way to create, edit or remove any value.

Skipper MongoDB ODM property editor - attributes and options Skipper MongoDB ODM property editor - tracking policy Skipper MongoDB ODM property editor - lifecycle callback

Customization

You can customize Skipper so it maximally suits your needs. Create new behaviors, configure custom properties or datatypes or connect Skipper with external tools.

Support for MVC frameworks

With Skipper you can use Symfony, Zend or other MVC framework without any limitation. Skipper exports definitions with support for any MVC framework.

Over 5,000 companies use Skipper every day


It is faster and gives less errors to have Skipper create the mapping code instead of writing it myself. Later in the development process I often use the Skipper diagram as a quick reference.

Herman Peeren, Yepr

Simply put, for us, Skipper is not just a tool to master, but a mastermind that teaches us the best programming practices.

Can Berkol, Biber Ltd

Skipper is especially helpful in the initial data modeling phase. Exporting the data model and scaffolding makes it really easy to get a first prototype up and running in a matter of minutes.

Jörn Wagner, Explicatis

Skipper is a stable and easy to use schema designing tool! No documentation, just design and everything is documented!

Siebe Vos, Inform'aid

It simplifies our work because it saves us time. With features added over time like adding behaviors to Propel in Skipper it has become an unmissable tool in our organisation.

Erwin te Bos, aXtion

We have good use of the tool. It simplifies our daily work, saves us time and is simple and intuitive to use.

Thomas Somoen, Try/Apt

We use Skipper on our daily basis for ecommerce software development. It lets us visualize at a glance the data models and work on them in a simple and easy way.

Dario Schilman, IDS Soluciones Ecommerce

It saved us a lot of time designing and configuring complex data models. It is impressive to see what this software achieves on its own.

Michael Stoye, ColorGATE

More user stories

Detailed List of supported MongoDB ODM properties

Skipper model properties

Object Property
Project name, storage path, description
Module name, description, external plugin storage, export path and format
Entity name, namespace, description
Field name, namespace, type, size, required, unique, primary key, auto increment, default value, enum values, description
Reference owner/inverse entity/collection, owner/inverse alias, association type (one-to-one, one-to-many), parent requirement, description
Many to Many mn entity, owner/inverse entity, owner/inverse alias, description
Embedded owner/inverse entity/collection, owner/inverse alias, association type (one-to-one, one-to-many), description
Inheritance base/derived entity, inheritance type, discriminator value/field, description
Collection name, description, list of entities
Index name, unique, indexed fields, description

MongoDB ODM model properties

Object Property
Project -
Module namespace, file-suffix (.dcm, .orm, without-siffix), filename-format (with-namespace, entity-only)
Entity export-file-name, change-tracking-policy (DEFERRED_IMPLICIT, DEFERRED_EXPLICIT, NOTIFY), lifecycle-callbacks(type, method), slave-okay, required-indexes, repository-class
Field strategy, embeded, file, distance, reference, id-generator-options
Reference side-owning / side-inverse (simple,strategy,repository-method,orphan-removal,limit,skip,cascade)
Many to Many join-table-schema, fetch, on-delete, on-update, cascade, order-by
Embedded strategy
Inheritance -
Collection -

MongoDB ODM datatypes support

  • string
  • int
  • boolean
  • float
  • date
  • file
  • hash
  • increment
  • key
  • object_id
  • timestamp
  • raw_type
  • key
  • bin_data_custom
  • bin_data_func
  • bin_data_md5
  • bin_data
  • bin_data_uuid

MongoDB ODM inheritance support

  • SINGLE_TABLE
  • JOINED
  • MAPPED_SUPERCLASS

MongoDB ODM model import / export formats

  • XML definitions
  • YAML (YML) definitions
  • PHP Annotations

MongoDB ODM associations support

  • MongoDB ODM reference One to one (one-to-one)
  • MongoDB ODM reference One to many (one-to-many)
  • MongoDB ODM reference Many to one (many-to-one)
  • MongoDB ODM reference Many to many (many-to-many)
  • MongoDB ODM embedded One to one (one-to-one)
  • MongoDB ODM embedded One to many (one-to-many)