import { INodeTypeDescription } from 'n8n-workflow'; /** * Options to be displayed */ export const nodeDescription: INodeTypeDescription = { displayName: 'MongoDB', name: 'mongoDb', icon: 'file:mongoDb.png', group: ['input'], version: 1, description: 'Find, insert and update documents in MongoDB.', defaults: { name: 'MongoDB', color: '#13AA52' }, inputs: ['main'], outputs: ['main'], credentials: [ { name: 'mongoDb', required: true } ], properties: [ { displayName: 'Override conn string', name: 'shouldOverrideConnString', type: 'boolean', default: false, description: 'Whether to override the generated connection string. Credentials will also be ignored in this case.' }, { displayName: 'Conn string', name: 'connStringOverrideVal', type: 'string', typeOptions: { rows: 1 }, displayOptions: { show: { shouldOverrideConnString: [true] } }, default: '', placeholder: `mongodb://USERNAMEHERE:PASSWORDHERE@localhost:27017/?authSource=admin&readPreference=primary&appname=n8n&ssl=false`, required: false, description: `If "Override conn string" is checked, the value here will be used as a MongoDB connection string, and the MongoDB credentials will be ignored` }, { displayName: 'Operation', name: 'operation', type: 'options', options: [ { name: 'Find', value: 'find', description: 'Find documents.' }, { name: 'Insert', value: 'insert', description: 'Insert documents.' }, { name: 'Update', value: 'update', description: 'Updates documents.' } ], default: 'find', description: 'The operation to perform.' }, { displayName: 'Collection', name: 'collection', type: 'string', required: true, default: '', description: 'MongoDB Collection' }, // ---------------------------------- // find // ---------------------------------- { displayName: 'Query (JSON format)', name: 'query', type: 'string', typeOptions: { rows: 5 }, displayOptions: { show: { operation: ['find'] } }, default: '{}', placeholder: `{ "birth": { "$gt": "1950-01-01" } }`, required: true, description: 'MongoDB Find query.' }, // ---------------------------------- // insert // ---------------------------------- { displayName: 'Fields', name: 'fields', type: 'string', displayOptions: { show: { operation: ['insert'] } }, default: '', placeholder: 'name,description', description: 'Comma separated list of the fields to be included into the new document.' }, // ---------------------------------- // update // ---------------------------------- { displayName: 'Update Key', name: 'updateKey', type: 'string', displayOptions: { show: { operation: ['update'] } }, default: 'id', required: true, description: 'Name of the property which decides which rows in the database should be updated. Normally that would be "id".' }, { displayName: 'Fields', name: 'fields', type: 'string', displayOptions: { show: { operation: ['update'] } }, default: '', placeholder: 'name,description', description: 'Comma separated list of the fields to be included into the new document.' } ] };