Revert changes to find

This commit is contained in:
Drew Gross
2016-05-23 11:54:54 -07:00
parent 74ee8613d8
commit fe8160449c

View File

@@ -1,6 +1,5 @@
let mongodb = require('mongodb'); let mongodb = require('mongodb');
let Collection = mongodb.Collection; let Collection = mongodb.Collection;
import * as transform from './MongoTransform';
export default class MongoCollection { export default class MongoCollection {
_mongoCollection:Collection; _mongoCollection:Collection;
@@ -14,28 +13,25 @@ export default class MongoCollection {
// none, then build the geoindex. // none, then build the geoindex.
// This could be improved a lot but it's not clear if that's a good // This could be improved a lot but it's not clear if that's a good
// idea. Or even if this behavior is a good idea. // idea. Or even if this behavior is a good idea.
// Depends on the className and schemaController because mongoObjectToParseObject does.
// TODO: break this dependency
find(query, { skip, limit, sort } = {}) { find(query, { skip, limit, sort } = {}) {
return this._rawFind(query, { skip, limit, sort }) return this._rawFind(query, { skip, limit, sort })
.catch(error => { .catch(error => {
// Check for "no geoindex" error // Check for "no geoindex" error
if (error.code != 17007 && !error.message.match(/unable to find index for .geoNear/)) { if (error.code != 17007 && !error.message.match(/unable to find index for .geoNear/)) {
throw error; throw error;
} }
// Figure out what key needs an index // Figure out what key needs an index
let key = error.message.match(/field=([A-Za-z_0-9]+) /)[1]; let key = error.message.match(/field=([A-Za-z_0-9]+) /)[1];
if (!key) { if (!key) {
throw error; throw error;
} }
var index = {}; var index = {};
index[key] = '2d'; index[key] = '2d';
return this._mongoCollection.createIndex(index) return this._mongoCollection.createIndex(index)
// Retry, but just once. // Retry, but just once.
.then(() => this._rawFind(query, { skip, limit, sort })); .then(() => this._rawFind(query, { skip, limit, sort }));
}) });
} }
_rawFind(query, { skip, limit, sort } = {}) { _rawFind(query, { skip, limit, sort } = {}) {