1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 'use strict';
- const handleCallback = require('../utils').handleCallback;
- const OperationBase = require('./operation').OperationBase;
- const toError = require('../utils').toError;
- const Aspect = require('./operation').Aspect;
- const defineAspects = require('./operation').defineAspects;
- class FindOneOperation extends OperationBase {
- constructor(collection, query, options) {
- super(options);
- this.collection = collection;
- this.query = query;
- }
- execute(callback) {
- const coll = this.collection;
- const query = this.query;
- const options = this.options;
- try {
- const cursor = coll
- .find(query, options)
- .limit(-1)
- .batchSize(1);
- // Return the item
- cursor.next((err, item) => {
- if (err != null) return handleCallback(callback, toError(err), null);
- handleCallback(callback, null, item);
- });
- } catch (e) {
- callback(e);
- }
- }
- }
- defineAspects(FindOneOperation, [Aspect.EXPLAINABLE]);
- module.exports = FindOneOperation;
|