M1 Mac下使用Brew安装MongoDB

第一步:通过命令安装

brew tap mongodb/brew
brew install mongodb-community

第二步:验证安装

mongod --version

第三步:启动Mongodb

brew services start mongodb-community

注:
mongod是服务端
mongo是客户端

跟chatGPT学编程-发布帖子仅指定人可见

要实现“仅限指定的某几个人可见”,需要在数据库中维护一个表,用于存储每个内容的可见范围。

假设有两张表:

users 表,存储用户数据;
posts 表,存储发帖数据。
其中 posts 表需要新增一个名为 visibility 的字段,用于指定该帖子的可见范围。如果该帖子是公开的,则 visibility 字段的值为 public;如果该帖子是仅限指定的某几个人可见,则 visibility 字段的值为 private,并且还需要在另外一张表中存储该帖子可见的用户 ID。

以下是实现该功能的 SQL 语句:

— 创建 posts 表

CREATE TABLE posts (
    id INT PRIMARY KEY,
    title VARCHAR(255),
    content TEXT,
    user_id INT,
    visibility VARCHAR(10)
);

— 创建 post_visibilities 表

CREATE TABLE post_visibilities (
    post_id INT,
    user_id INT,
    FOREIGN KEY (post_id) REFERENCES posts(id),
    FOREIGN KEY (user_id) REFERENCES users(id)
);

— 新增一个帖子,并设置为仅限指定的某几个人可见

INSERT INTO posts (id, title, content, user_id, visibility) VALUES (1, '标题', '内容', 1, 'private');

— 在 post_visibilities 表中添加帖子的可见用户

INSERT INTO post_visibilities (post_id, user_id) VALUES (1, 2), (1, 3);

— 查询指定用户可见的帖子

SELECT p.id, p.title, p.content
FROM posts p
INNER JOIN post_visibilities pv ON p.id = pv.post_id
WHERE p.visibility = 'private' AND pv.user_id = 2;

— 要查询所有公开的帖子和指定用户可见的帖子,可以使用以下 SQL 语句

SELECT p.id, p.title, p.content
FROM posts p
LEFT JOIN post_visibilities pv ON p.id = pv.post_id AND pv.user_id = [USER_ID]
WHERE p.visibility = 'public' OR (p.visibility = 'private' AND pv.user_id IS NOT NULL)

其中,posts 为帖子表的名称,post_visibilities 为授权表的名称,visibility 列表示帖子的可见性,可以为 ‘public’ 或 ‘private’,user_id 列表示授权给哪个用户。

在查询时,首先查询所有 visibility 为 ‘public’ 的帖子,然后再查询 visibility 为 ‘private’ 且被授权给指定用户的帖子。通过左连接 post_visibilities 表,并在 ON 子句中同时匹配帖子 ID 和用户 ID,然后再在 WHERE 子句中筛选出 visibility 为 ‘private’ 且 pv.user_id 不为空(即被授权给指定用户)的帖子或 visibility 为 ‘public’ 的帖子,这样就能得到所有公开的帖子和指定用户可见的帖子。

跟chatGPT学编程-用SQL 语句把user表中所有user的年龄都改成18

您可以使用如下的 SQL 语句将 user 表中所有用户的年龄修改为 18:

UPDATE user SET age = 18;

其中,user 是需要修改的表名,age 是需要修改的列名,18 是需要更新成的新值。这条 SQL 语句将会把 user 表中所有用户的年龄都改成 18。

请注意,在执行此类数据修改操作时,请务必谨慎操作,并先备份好数据,以防意外情况导致数据丢失。

magicApi-分页代码示例

var page = body.page // 默认值要在底部工具栏里加
var size = body.size
var shops = db.table('shop')
if (body.status && body.status > 0){
    shops = shops.where().eq('status',body.status)
}
return shops.orderBy('id').page(size, (page - 1) * size)

运行和停止运行jar包

1.前台运行,方便调试

cd /www/wwwroot
java -jar magic.jar

ctrl+c停止

2.后台运行,用于上线

cd /www/wwwroot
nohup java -jar magic.jar &

nohup java -jar magic.jar > nohup.out 2>&1 &

查询Pid:

ps aux|grep magic.jar

停止后台运行:
假设pid 为30630
停止任务的命令就是

kill 30630

使用宝塔面板,运行java项目。