adam-cowley / neode

Neo4j OGM for Node.js
MIT License
394 stars 72 forks source link

Can I add extra labels to nodes when CREATE or MERGE with query builder? #164

Open liuyiqi1999 opened 2 years ago

liuyiqi1999 commented 2 years ago

I have the model Event:

instance = require('neode')
            .fromEnv()
            .with({
                Event: event,
                User: user
            });

const event = {
    type: 'string',
    category: 'string',
    trackerId: 'string',
    eventId: 'number',
    data: 'string',
    time: 'number',
    level: 'string',
    uid: 'number'
}

I can add nodes by some model with query builder like this now:

const res = await builder
    .merge('e', "Event", {
        type: event.type,
        category: event.category,
        trackerId: event.trackerId,
        eventId: event.eventId,
        data: JSON.stringify(event.data),
        time: event.time,
        level: event.level,
        uid: uid,
    })
    .return("e")
    .execute();
const eId = instance.hydrateFirst(res, "e").id();

I would like to add extra labels when adding new nodes, which means something like MERGE (e:Event:Debug:User), so I can get more dimensions for these nodes.

How can I add extra labels besides the model name itself when running instead of defining static ones when defining models at the very beginning?

Thanks.