我的百度BAE上用node+mongodb搭建我在学习做的网站,遇到了一个关于排序的坑。
发布于 8 年前 作者 chtic123 3234 次浏览 来自 问答

情况是这样的,我有一个评论的功能,用户评论一条就在评论框里面增加一条评论,用户之间也可以互相回复,问题就在这里, 现在的评论区是这样的(还没有加样式=。=!):↓

30DA.tmp.jpg

但是当有一个用户回复了最上面的一条,评论区就会重新排序,评论了这一条,这一条就会重新排到最下面去,像这样:↓

3D2B.tmp.jpg

我评论的Schema里面是这样写的:↓

F767.tmp.jpg

不知道是不是我的写法有问题,但是我在本地运行的时候是不会有这个问题的,就是按照创建的时间排序的,回复也不会打乱,但是上传到百度BAE上面后就会出现这个问题,有谁知道为啥么???

6 回复

有没有人知道问题在哪~T_T

你是安装更新时间来排序的,你回复一次,相当于更新了一次数据,他的时间自然就靠后了,重新定义下数据模型吧 From Noder

@falost 没有,我的sort是按照createAt来排序的,就是创建时间来排序的,不是更新时间,关键是,我在本地调试的时候是不会有这个问题的,但是上传到百度BAE上就有这个问题了。。。

试过了这些方法 1、重新定义了数据模型,没有定义update时间; 2、重新建立了一个新的数据库; 还是没有得到解决T_T

@chtic123 增加调试信息,一步一步来,看看到底在哪里数据发生了不是预期的变化。我在免费的heroku上能查看log,百度这个应该也可以。

@hezhongfeng 是我2了,刚刚突然想到了问题所在,因为在商品评论页面并没有用到Schema里面写的静态方法,在评论页面查找的评论数据的时候没有写排序方法,我2了。 至于为什么在本地调试没有出现这个问题,估计是我本地的mongodb版本和百度上面的不一样,百度上面这个估计是默认按照更新时间排序的。 解决了,神清气爽~

回到顶部