README
RethinkDB Populate
Requires node 7 with
--harmony
flag
const r = require('rethinkdb')
const populate = require('rethinkdb-populate')
async function init() {
const db = await r.connect({port: 28015})
await populate(db, {
users: {indices: ['email'], data: [
{id: 'demo', name: 'Example User', email: 'demo@example.org'},
]},
devices: {indices: {
owners: {multi: true},
}},
positions: {indices: {
location: {geo: true},
deviceTimestamp: {fields: ['device', 'timestamp']},
}},
})
// app.listen or whatever
}
init().catch(console.error)
API
Following formats are allowed:
populate(db, [ // list of tables to create
{
name: 'users',
indices: ['email'], // list of indices to create
data: [ // list of initial documents to insert (id required)
{id: 'demo', name: 'Example User', email: 'demo@example.org'},
],
},
{
name: 'devices',
indices: [
{name: 'owners', multi: true},
],
},
{
name: 'positions',
indices: [
{name: 'location', geo: true},
{name: 'deviceTimestamp', fields: ['device', 'timestamp']
},
},
])
populate(db, { // list of tables to create
users: {
indices: ['email'], // list of indices to create
data: [ // list of initial documents to insert
{id: 'demo', name: 'Example User', email: 'demo@example.org'},
],
},
devices: {
indices: {
owners: {multi: true},
},
},
positions: {
indices: {
location: {geo: true},
deviceTimestamp: {fields: ['device', 'timestamp']},
},
},
})