Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按索引和特定限制检索Mongo文档_Java_Mongodb_Caching - Fatal编程技术网

Java 按索引和特定限制检索Mongo文档

Java 按索引和特定限制检索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

我有一个超过31000个文档的集合,我想从我的Java
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)