Java 按索引和特定限制检索Mongo文档
我有一个超过31000个文档的集合,我想从我的JavaJava 按索引和特定限制检索Mongo文档,java,mongodb,caching,Java,Mongodb,Caching,我有一个超过31000个文档的集合,我想从我的JavaHTTP(我使用服务)调用中为每个调用检索x个文档: 对于每次通话,我希望获得文档[1-100],对于下一次通话,我希望获得[101-200],依此类推,直到通话结束。 我的问题是:1-有没有一种好方法可以在java数据类型中缓存100个文档。2-我应该把索引跟踪服务(mongo)或java类放在哪里? 以下是我使用的mongo查询: module.exports = function (app, options) { var mon
HTTP
(我使用服务)调用中为每个调用检索x个文档:
对于每次通话,我希望获得文档[1-100],对于下一次通话,我希望获得[101-200],依此类推,直到通话结束。
我的问题是:1-有没有一种好方法可以在java数据类型中缓存100个文档。2-我应该把索引跟踪服务(mongo)或java类放在哪里?
以下是我使用的mongo查询:
module.exports = function (app, options) {
var mongoFind = {
events: mongoFindEvents,
find: function (req, res) {
var name = "node"
var query = {};
query = req.query;
var Collection = getCollection(name);
Collection.find(query).toArray(function(err, docs) {
res.send(docs);
});
}
};
谢谢大家! 在这个代码段中,您并没有展示如何实际查询MongoDb,但您需要做的是为您希望检索的文档集发送一个查询参数。然后在实际查询MongoDb的代码中,您需要使用limit
和skip
操作符来提取正确的数据。因此,您的HTTP请求对象将如下所示(JSON格式):
{
用户代理:
跳过:###//即100、200、300等
极限:####//听起来你总是希望这个值为100
}
然后在您的查询中(同样,您没有显示实际查询Mongo的代码,所以我只是按照Mongo shell中的外观编写此代码):
db.collection.find().skip(request.skip).limit(request.limit)
您是否知道我需要添加到服务中的部件?
module.exports = function (app, options) {
var mongoFind = {
events: mongoFindEvents,
find: function (req, res) {
var name = "node"
var query = {};
query = req.query;
var Collection = getCollection(name);
Collection.find(query).toArray(function(err, docs) {
res.send(docs);
});
}
};
{
User-Agent: <user-agent>
Skip: ### //ie 100, 200, 300, etc
Limit: ### //Sounds like you always want this to be 100
}
db.collection.find(<query>).skip(request.skip).limit(request.limit)