这问题困扰我很久,在评论管理页面无法看到管理。
最终才发现我登录Waline不是管理员身份导致的。需要修改数据库的表是最佳最快的解决办法。
bash展开代码docker ps # 查看mongo数据库的容器ID
# 进入 MongoDB 容器
docker exec -it <mongo容器ID> mongosh
# 切换到 waline 数据库
use waline
# 查看有哪些集合
waline> show collections
Comment
Users
显然,评论是集合Comment,用户管理是集合Users。
直接清除Waline所有数据,一了百了,评论都会被清除。(不推荐)
bash展开代码db.dropDatabase()
看所有用户:
bash展开代码waline> db.Users.find().pretty()
[
{
_id: ObjectId('68d1062ba46557004adef429'),
display_name: 'dong',
email: 'dong',
url: 'dong',
password: '$2a$08$RFaii2xHksOZ5tX4jtrwZu97lX7SsdCsz3PgGSlue2g7jLz79rdxO',
type: 'administrator'
},
{
_id: ObjectId('68d109b9a46557004adef42a'),
display_name: 'dx',
email: 'dx',
url: 'dx',
password: '$2a$08$qsfU8Rlin6LEbQhQuEMK0OrOEvaBLU2gRTTdkItPJw36Wavs.Kn1q',
type: 'guest'
}
]
查看所有评论:
bash展开代码waline> db.Comment.find().pretty()
[
{
_id: ObjectId('68d109e2a46557004adef42b'),
link: '',
mail: '',
nick: '匿名',
pid: null,
rid: null,
ua: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36',
url: '/post/2243',
comment: 'nihaoya ',
ip: '106.120.54.195',
insertedAt: ISODate('2025-09-22T08:33:33.274Z'),
user_id: null,
status: 'approved'
}
]
要让用户 dx成为管理员,同时将用户 dong降级为普通用户,你可以使用 MongoDB 的更新操作。以下是具体的命令:
bash展开代码# 将 dx 用户升级为管理员
waline> db.Users.updateOne(
{ _id: ObjectId('68d109b9a46557004adef42a') },
{ $set: { type: 'administrator' } }
)
# 将 dong 用户降级为普通用户
waline> db.Users.updateOne(
{ _id: ObjectId('68d1062ba46557004adef429') },
{ $set: { type: 'guest' } }
)
重启: docker compose down && docker compose up -d ,刷新浏览器,就可以看到 dx是管理员了,而dong 不是管理员。
如果上面的操作过于复杂,可以直接删除集合Users,这样第一个注册的人必定就是管理员,而且只有这一个用户。
bash展开代码# 删除 Users 集合(所有用户数据将被清空)
waline> db.Users.drop()
true
重启: docker compose down && docker compose up -d ,刷新浏览器,就可以第一个注册为管理员了。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!