mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-07-07 16:33:10 +02:00
tons of fixes to mongo and redis, to make returns the same
This commit is contained in:
@@ -86,7 +86,7 @@
|
||||
// key
|
||||
|
||||
module.exists = function(key, callback) {
|
||||
db.collection('objects').findOne({_key:key}, function(err, item) {
|
||||
db.collection('objects').findOne({$or:[{_key:key}, {setName:key}]}, function(err, item) {
|
||||
callback(err, item !== undefined && item !== null);
|
||||
});
|
||||
}
|
||||
@@ -176,9 +176,27 @@
|
||||
}
|
||||
|
||||
module.getObjects = function(keys, callback) {
|
||||
db.collection('objects').find({_key:{$in:keys}}, {_id:0, _key:0}).toArray(function(err, data) {
|
||||
db.collection('objects').find({_key:{$in:keys}}, {_id:0}).toArray(function(err, data) {
|
||||
|
||||
callback(err, data);
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
var returnData = [],
|
||||
resultIndex = 0;
|
||||
|
||||
for(var i=0; i<keys.length; ++i) {
|
||||
|
||||
if(data && resultIndex < data.length && keys[i] === data[resultIndex]._key) {
|
||||
delete data[resultIndex]._key;
|
||||
returnData.push(data[resultIndex]);
|
||||
++resultIndex;
|
||||
} else {
|
||||
returnData.push(null);
|
||||
}
|
||||
}
|
||||
|
||||
callback(err, returnData);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -207,15 +225,12 @@
|
||||
|
||||
if(item === null) {
|
||||
item = {};
|
||||
for(var i=0; i<fields.length; ++i) {
|
||||
}
|
||||
|
||||
for(var i=0; i<fields.length; ++i) {
|
||||
if(item[fields[i]] === null || item[fields[i]] === undefined) {
|
||||
item[fields[i]] = null;
|
||||
}
|
||||
} else {
|
||||
for(var i=0; i<fields.length; ++i) {
|
||||
if(item[fields[i]] === null || item[fields[i]] === undefined) {
|
||||
item[fields[i]] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
removeHiddenFields(item);
|
||||
@@ -246,8 +261,7 @@
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
callback(err, item && item[field]!== undefined && item[field] !== null);
|
||||
callback(err, !!item && item[field] !== undefined && item[field] !== null);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -310,7 +324,13 @@
|
||||
|
||||
module.isMemberOfSets = function(sets, value, callback) {
|
||||
function iterator(set, next) {
|
||||
module.isSetMember(set, value, next);
|
||||
module.isSetMember(set, value, function(err, result) {
|
||||
if(err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
next(null, result?1:0);
|
||||
});
|
||||
}
|
||||
|
||||
async.map(sets, iterator, function(err, result) {
|
||||
@@ -477,11 +497,39 @@
|
||||
}
|
||||
|
||||
module.sortedSetScore = function(key, value, callback) {
|
||||
throw new Error('not-implemented');
|
||||
db.collection('objects').findOne({setName:key, value: value}, {fields:{score:1}}, function(err, result) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
if(result) {
|
||||
return callback(null, result.score);
|
||||
}
|
||||
|
||||
callback(err, null);
|
||||
});
|
||||
}
|
||||
|
||||
module.sortedSetsScore = function(keys, value, callback) {
|
||||
throw new Error('not-implemented');
|
||||
db.collection('objects').find({setName:{$in:keys}, value: value}).toArray(function(err, result) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
var returnData = [],
|
||||
resultIndex = 0;
|
||||
|
||||
for(var i=0; i<keys.length; ++i) {
|
||||
|
||||
if(result && resultIndex < result.length && keys[i] === result[resultIndex].setName) {
|
||||
returnData.push(result[resultIndex].score);
|
||||
++resultIndex;
|
||||
} else {
|
||||
returnData.push(null);
|
||||
}
|
||||
}
|
||||
|
||||
callback(null, returnData);
|
||||
});
|
||||
}
|
||||
|
||||
// lists
|
||||
|
||||
@@ -318,7 +318,7 @@
|
||||
module.sortedSetsScore = function(keys, value, callback) {
|
||||
var multi = redisClient.multi();
|
||||
|
||||
for(x=0; x<keys.length; ++x) {
|
||||
for(var x=0; x<keys.length; ++x) {
|
||||
multi.zscore(keys[x], value);
|
||||
}
|
||||
|
||||
|
||||
@@ -92,8 +92,14 @@ var DebugRoute = function(app) {
|
||||
});
|
||||
|
||||
app.get('/mongo', function(req, res) {
|
||||
var dbtype = 'mongo';
|
||||
if(req.query.db) {
|
||||
dbtype = req.query.db;
|
||||
}
|
||||
|
||||
var db = require('./../database/' + dbtype);
|
||||
|
||||
|
||||
var db = require('./../database');
|
||||
var objectKey = 'testing4';
|
||||
|
||||
function createUser(callback) {
|
||||
@@ -208,6 +214,20 @@ var DebugRoute = function(app) {
|
||||
});
|
||||
}
|
||||
|
||||
function sortedSetScore(callback) {
|
||||
db.sortedSetScore('users:joindate', 1, function(err, data) {
|
||||
console.log('sortedSetScore return', data);
|
||||
callback(err, {'sortedSetScore': data});
|
||||
});
|
||||
}
|
||||
|
||||
function sortedSetsScore(callback) {
|
||||
db.sortedSetsScore(['users:joindate', 'users:derp', 'users:postcount'], 1, function(err, data) {
|
||||
console.log('sortedSetsScore return', data);
|
||||
callback(err, {'sortedSetsScore': data});
|
||||
});
|
||||
}
|
||||
|
||||
function listAppend(callback) {
|
||||
db.listAppend('myList5', 5, function(err, data) {
|
||||
console.log('listAppend return', data);
|
||||
@@ -345,7 +365,9 @@ var DebugRoute = function(app) {
|
||||
getSortedSetRange,
|
||||
//sortedSetRemove,
|
||||
getSortedSetRange,
|
||||
sortedSetCount
|
||||
sortedSetCount,
|
||||
sortedSetScore,
|
||||
sortedSetsScore
|
||||
];
|
||||
|
||||
var listTasks = [
|
||||
@@ -385,10 +407,9 @@ var DebugRoute = function(app) {
|
||||
|
||||
var miscTests = [
|
||||
function(next) {
|
||||
db.isObjectField('email:uid', 'barisusakli@gmail.com', function(err, exists) {
|
||||
console.log(err, exists);
|
||||
next(err, exists);
|
||||
});
|
||||
db.sortedSetScore('users:joindate', 1, function(err, result) {
|
||||
next(err, result);
|
||||
})
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -315,7 +315,7 @@ var async = require('async'),
|
||||
}
|
||||
|
||||
async.whilst(continueCondition, function(callback) {
|
||||
RDB.zrevrange('topics:recent', start, stop, function(err, tids) {
|
||||
db.getSortedSetRevRange('topics:recent', start, stop, function(err, tids) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user