我需要使用mongoose插入一些数据,但集合的名称由用户在插入时提供,所以我必须先检查该集合是否存在。
我知道如何检查集合是否存在,即查询system.namespaces
集合。 我可以看到有3种可能的方法来完成此操作。
- 找到一种使用mongoose查询
system.namespaces
的方法(也许定义与数据库中匹配的模式)。 - 从mongoose获取某些底层的node-mongodb-native对象,手动执行查询。 无论如何,这是我想要学习的内容。
- 使用单独的一个node-mongodb-native实例(或其他驱动程序)来执行查询。
第3
种方法最不优雅,我正在尝试避免它,因为我不想在mongoose已经创建了一个连接时再加载另一个驱动程序实例或创建新连接。
写完这篇文章后,我将尝试第1
种方法。 我刚刚检查了system.namespaces
,发现架构非常简单。
我仍然想听听一些意见。
谢谢!
mongoose
,mongoURI
,conn
),因为我觉得这在被接受的答案中是缺失的,因为你的例子是一个真实世界的例子,而且mongoose.connection.db.listCollections
并没有清楚地定义如何应用解决方案。 - Steven Ventimiglia