如何在mongodb中找到以前的id

时间:2015-11-23 07:03:44

标签: java angularjs mongodb spring-mvc

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

这是我正在使用当前ID的代码:

Controller.js

RewriteCond %{HTTP_HOST} ^test.example\.com$
RewriteCond %{HTTP_USER_AGENT} !^static.example\.com$
RewriteRule ^(.*)\.(png|js|jpg|gif|ico)$ http://static.example.com/$1.$2 [NE,R=302,L]

service.js

$scope.previousBeat = function(beatId){
                            var beatId = beatId;
                            blogService.getPreviousBlog(beatId, function(data){
                                $scope.blogId = data;
                            })
                        };

controller.java

this.getPreviousBlog = function(id, callback){
    var url = 'blog/' + id + '/details';
    httpService.getRequest(url, callback);
};

Service.java:

@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;
    }

有没有办法获得以前的身份证。

1 个答案:

答案 0 :(得分:2)

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

db.blog.find({_id: {$lt: priviousId}}).sort({_id: 1}).limit(1)[0];

基本上,我们按id排序,然后使用$lt对您馆藏中的_id进行排序,只获得第一条记录。那将是你以前的博客。

在Groovy代码中:

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