gpt4 book ai didi

node.js - Mongodb 自动为新集合创建索引

转载 作者:IT老高 更新时间:2023-10-28 23:24:33 27 4
gpt4 key购买 nike

我有一个带有 Mondodb 数据库的 Node.JS 服务器。多个客户端使用同一个数据库,每个客户端都有自己的集合。集合由客户端的 id 命名。

由于每个客户端对其数据使用不同的名称,因此当新客户端连接到服务器时,他对数据库执行的第一个操作将为他创建一个新集合。

我需要所有的集合都有一个特定的索引。有没有办法为每个新集合自动创建这个索引?

最佳答案

不,没有这样的命令。

但不要害怕过于频繁地调用 createIndexThe documentation保证当具有相同设置的索引已经存在时,什么都不会发生。因此,您可以将其附加到新用户执行的一些常见数据库操作中。当它被多次调用时没什么大不了的。

为了突出这种行为,该方法曾被称为 ensureIndex,但该名称已被弃用。

顺便说一句:为每个客户提供不同的集合是一种非常不寻常的架构。它有一些缺点,例如您已经发现的索引和其他集合级别配置的问题,还有其他一些缺点,例如无法执行任何使用来自多个客户端的数据的查询。使用默认存储引擎的优势在于,客户端无法使用集合范围的锁相互锁定,但当您使用 WiredTiger 引擎时,该优势已过时,因为 WiredTiger 仅在文档​​级别锁定。

一种更传统的方法是为所有用户创建一个集合,并在每个文档中设置一个字段,说明哪个用户拥有该文档以及哪个是用户特定查询使用的所有索引的一部分。

关于node.js - Mongodb 自动为新集合创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31991710/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com