Java 如何在mongodb中查找以前的id

Java 如何在mongodb中查找以前的id,java,angularjs,mongodb,spring-mvc,Java,Angularjs,Mongodb,Spring Mvc,在我的web项目中,我有旧的和新的按钮。如果我点击旧的,它必须显示以前的博客详细信息,反之亦然。现在我在后端传递当前id,我必须在MongoDB中搜索和查找以前的id。如何得到它。如果有任何与此相关的链接,请提供 这是我获取当前id的一段代码: Controller.js: $scope.previousBeat = function(beatId){ var beatId = beatId;

在我的web项目中,我有旧的和新的按钮。如果我点击旧的,它必须显示以前的博客详细信息,反之亦然。现在我在后端传递当前id,我必须在MongoDB中搜索和查找以前的id。如何得到它。如果有任何与此相关的链接,请提供

这是我获取当前id的一段代码:

Controller.js

$scope.previousBeat = function(beatId){
                            var beatId = beatId;
                            blogService.getPreviousBlog(beatId, function(data){
                                $scope.blogId = data;
                            })
                        };
this.getPreviousBlog = function(id, callback){
    var url = 'blog/' + id + '/details';
    httpService.getRequest(url, callback);
};
@RequestMapping(value = "/{id}/details", method = RequestMethod.GET)
    public @ResponseBody Blog getPreviousBlogWithId(@PathVariable("id") String id) {
        try {
            Blog blog = blogService.findBlogById(id);

            return blogService.incrementViewCount(blog);
        } catch (Exception e) {
            // log.error("Error while retrieving blog", e.getMessage());
        }
        return null;
    }
service.js中

$scope.previousBeat = function(beatId){
                            var beatId = beatId;
                            blogService.getPreviousBlog(beatId, function(data){
                                $scope.blogId = data;
                            })
                        };
this.getPreviousBlog = function(id, callback){
    var url = 'blog/' + id + '/details';
    httpService.getRequest(url, callback);
};
@RequestMapping(value = "/{id}/details", method = RequestMethod.GET)
    public @ResponseBody Blog getPreviousBlogWithId(@PathVariable("id") String id) {
        try {
            Blog blog = blogService.findBlogById(id);

            return blogService.incrementViewCount(blog);
        } catch (Exception e) {
            // log.error("Error while retrieving blog", e.getMessage());
        }
        return null;
    }
在controller.java中:

$scope.previousBeat = function(beatId){
                            var beatId = beatId;
                            blogService.getPreviousBlog(beatId, function(data){
                                $scope.blogId = data;
                            })
                        };
this.getPreviousBlog = function(id, callback){
    var url = 'blog/' + id + '/details';
    httpService.getRequest(url, callback);
};
@RequestMapping(value = "/{id}/details", method = RequestMethod.GET)
    public @ResponseBody Blog getPreviousBlogWithId(@PathVariable("id") String id) {
        try {
            Blog blog = blogService.findBlogById(id);

            return blogService.incrementViewCount(blog);
        } catch (Exception e) {
            // log.error("Error while retrieving blog", e.getMessage());
        }
        return null;
    }
Service.java:

 @Override
    public Blog findBlogById(String id) {
        Blog blog = blogRepo.findOne(id);
        find().sort({_id:1})

        if (blog != null) {
            return blog;
        }
        return null;
    }

有没有办法获取以前的id。

如果您的收集记录是按id排序的,那么您可以这样写:

db.blog.find({_id: {$lt: priviousId}}).sort({_id: 1}).limit(1)[0];
基本上,我们是按
id
排序,然后使用
$lt
对集合中的
\u id
进行排序,只得到第一条记录。那将是你以前的博客

在Groovy代码中:

blogRepo.find(["_id": ["$lt": priviousId]]).sort(["_id": 1]).limit(1)[0];

好的..谢谢你..priviousId是哪一个传递形式前端对吗?是的,
priviousId
是你从前端传递的。此行有多个标记-令牌上的语法错误,删除这些令牌-语法错误,插入“)”要完成方法调用-语法错误,插入“)”要完成方法调用-令牌上的语法错误“,无效表达式-语法错误,请插入“::IdentifierRornew“要完成引用表达式-语法错误,请插入”;“要完成语句-语法错误,请插入”;“要完成语句-语法错误,请插入”;“要完成块语句-语法错误,请将“AssignmentOperator表达式”插入..Blog Blog=blogRepo.find({u id:{$lt:priviousId}}).sort({u id:1}).limit(1)[0];…这行代码说明什么是
blogRepo
以及哪个是您的集合?我假设
blogRepo
是您的集合。可能的重复项