查询 MongoDB 中可能有或没有特定字段的记录

问题描述 投票:0回答:1

我将 Prisma 与 MongoDB 结合使用,并且有一个

Comment
模型,其中包含
deletedAt
字段。但是,我的数据库中已有注释,这些注释是在将该字段添加到架构之前创建的。

我正在尝试查询将

parentId
设置为
null
并且未删除的评论,但我需要考虑可能有也可能没有
deletedAt
字段的评论。

我当前的 Prisma 查询如下所示:

const article = await prisma.article.findUnique({
    where: {
        id: articleId
    },
    include: {
        comments: {
            where: {
                parentId: null,
                deletedAt: null
            },
            orderBy: {
                createdAt: 'desc'
            },
        },
        upvotes: true,
    }
});

此查询仅返回

deletedAt
字段设置为
null
的评论。如何修改我的查询以包含没有
deletedAt
字段的评论?

附加信息:

  • 我将 Prisma 与 MongoDB 结合使用。
  • 在创建一些注释后,将
    deletedAt
    字段添加到架构中。
  • 我知道 MongoDB 没有自动迁移功能,所以我需要一种方法来处理查询中的这种差异。

如果您有任何建议或解决方案,请告诉我!

我尝试使用带有 OR 条件的 Prisma 查询来检查删除的注释为 null 或未定义。我希望此查询返回所有将parentId 设置为null 的评论,无论它们是否具有deletedAt 字段。然而,查询仅返回了deletedAt字段设置为null的评论。

mongodb migration prisma
1个回答
0
投票

我将更新所有文档以匹配新架构:

db.article.update({'deletedAt': {$exists : false}}, {$set: {'deletedAt': Null}})

这是一个一次性的shell命令,不需要修改代码。认为它类似于 SQL ORM 术语中的模式迁移。

© www.soinside.com 2019 - 2024. All rights reserved.