在我的网络项目中,我有较旧的和较新的按钮。如果我点击旧的,它必须显示以前的博客详细信息,反之亦然。现在我在后端传递当前 id,我必须在 MongoDB 中搜索并找到以前的 id。如何得到它。如果有任何与此相关的链接,请提供。
这是我获取当前 ID 的代码:
Controller.js:
$scope.previousBeat = function(beatId){
var beatId = beatId;
blogService.getPreviousBlog(beatId, function(data){
$scope.blogId = data;
})
};
在service.js中:
this.getPreviousBlog = function(id, callback){
var url = 'blog/' + id + '/details';
httpService.getRequest(url, callback);
};
在controller.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;
}
服务.java:
@Override
public Blog findBlogById(String id) {
Blog blog = blogRepo.findOne(id);
find().sort({_id:1})
if (blog != null) {
return blog;
}
return null;
}
有什么办法可以获取以前的ID。
最佳答案
如果你的 Collection 记录是按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];
关于java - 如何在mongodb中查找以前的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33865352/