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.



1. Visually edit your project model.
<?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: Address2. 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
See all the features
Over 5,000 companies use Skipper every day
“

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
”
“

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
”
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-suffix), 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, embedded, 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
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 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)
MongoDB ODM model import / export formats
XML definitions
YAML (YML) definitions
PHP Annotations