mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 03:26:04 +01:00
closes #4368
This commit is contained in:
@@ -37,7 +37,7 @@ module.exports = function(db, module) {
|
|||||||
bulk.find({_key: key, value: values[i]}).upsert().updateOne({$set: {score: parseInt(scores[i], 10)}});
|
bulk.find({_key: key, value: values[i]}).upsert().updateOne({$set: {score: parseInt(scores[i], 10)}});
|
||||||
}
|
}
|
||||||
|
|
||||||
bulk.execute(function(err, result) {
|
bulk.execute(function(err) {
|
||||||
callback(err);
|
callback(err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -55,7 +55,7 @@ module.exports = function(db, module) {
|
|||||||
bulk.find({_key: keys[i], value: value}).upsert().updateOne({$set: {score: parseInt(score, 10)}});
|
bulk.find({_key: keys[i], value: value}).upsert().updateOne({$set: {score: parseInt(score, 10)}});
|
||||||
}
|
}
|
||||||
|
|
||||||
bulk.execute(function(err, result) {
|
bulk.execute(function(err) {
|
||||||
callback(err);
|
callback(err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -85,7 +85,7 @@ module.exports = function(db, module) {
|
|||||||
}
|
}
|
||||||
value = helpers.valueToString(value);
|
value = helpers.valueToString(value);
|
||||||
|
|
||||||
db.collection('objects').remove({_key: {$in: keys}, value: value}, function(err, res) {
|
db.collection('objects').remove({_key: {$in: keys}, value: value}, function(err) {
|
||||||
callback(err);
|
callback(err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -95,16 +95,17 @@ module.exports = function(db, module) {
|
|||||||
if (!Array.isArray(keys) || !keys.length) {
|
if (!Array.isArray(keys) || !keys.length) {
|
||||||
return callback();
|
return callback();
|
||||||
}
|
}
|
||||||
|
var query = {_key: {$in: keys}};
|
||||||
|
|
||||||
var scoreQuery = {};
|
|
||||||
if (min !== '-inf') {
|
if (min !== '-inf') {
|
||||||
scoreQuery.$gte = min;
|
query.score = {$gte: min};
|
||||||
}
|
}
|
||||||
if (max !== '+inf') {
|
if (max !== '+inf') {
|
||||||
scoreQuery.$lte = max;
|
query.score = query.score || {};
|
||||||
|
query.score.$lte = max;
|
||||||
}
|
}
|
||||||
|
|
||||||
db.collection('objects').remove({_key: {$in: keys}, score: scoreQuery}, function(err) {
|
db.collection('objects').remove(query, function(err) {
|
||||||
callback(err);
|
callback(err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -182,12 +183,14 @@ module.exports = function(db, module) {
|
|||||||
count = 0;
|
count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
var scoreQuery = {};
|
var query = {_key: key};
|
||||||
|
|
||||||
if (min !== '-inf') {
|
if (min !== '-inf') {
|
||||||
scoreQuery.$gte = min;
|
query.score = {$gte: min};
|
||||||
}
|
}
|
||||||
if (max !== '+inf') {
|
if (max !== '+inf') {
|
||||||
scoreQuery.$lte = max;
|
query.score = query.score || {};
|
||||||
|
query.score.$lte = max;
|
||||||
}
|
}
|
||||||
|
|
||||||
var fields = {_id: 0, value: 1};
|
var fields = {_id: 0, value: 1};
|
||||||
@@ -195,7 +198,7 @@ module.exports = function(db, module) {
|
|||||||
fields.score = 1;
|
fields.score = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
db.collection('objects').find({_key:key, score: scoreQuery}, {fields: fields})
|
db.collection('objects').find(query, {fields: fields})
|
||||||
.limit(count)
|
.limit(count)
|
||||||
.skip(start)
|
.skip(start)
|
||||||
.sort({score: sort})
|
.sort({score: sort})
|
||||||
|
|||||||
Reference in New Issue
Block a user