如何保持写操作不完整,直到图集搜索完成更新新的/更新的文档

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

我的应用程序目前面临一个挑战,在添加或更新项目后,重定向到列表页面时更改不会立即反映出来。我注意到引入 1000 毫秒的延迟似乎可以暂时解决问题,但这不是一个可持续的解决方案。

我怀疑问题出在写操作和Atlas Search索引更新之间的同步上。我探索过使用 Atlas API 和 MongoDB Node.js 驱动程序来检查索引状态,但到目前为止,它还没有提供可靠的解决方案。

你们中是否有人遇到过类似的问题,或者对如何确保写入操作仅在 Atlas Search 索引完成更新时完成有建议?我非常感谢您在处理这种情况时可能拥有的任何见解、替代方法或最佳实践。

预先感谢您的宝贵意见!

node.js mongodb mongoose mongodb-atlas
1个回答
0
投票

我之前遇到过类似的问题,我所做的是创建一个自定义函数来检查索引是否更新。此函数使用 $search 查询获取插入或更新的文档。

例如,假设我们插入一条新记录。我们希望确保它与搜索索引同步。为此,我们可以使用如下所示的聚合查询来检查插入的文档是否存在:

[{
    $search: {
        index: <<searchIndex>>,
        compound: {
            must: [
                {
                    in: {
                        path: "_id",
                        value: <<objectiveId>>
                    }
                }
            ]
        }
    }
}]

同样,对于更新操作,我们可以将更新的字段包含在查询中进行验证。对于删除操作,我们可以使用类似的查询,但确保不检索文档。

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