我需要使用猫鼬插入一些数据,但是集合的名称由用户在插入时提供,因此我首先必须检查集合是否存在。
我知道如何检查集合是否存在的方式是通过查询system.namespaces
集合。我可以看到3种可行的html" target="_blank">方法。
system.namespaces
使用猫鼬查询的方法(也许定义一个与数据库中的模式匹配的模式)。Number 3
是最不优雅的数字,也是我要避免的数字,我不想加载该驱动程序的另一个实例,也不想在mongoose已经创建一个实例时创建一个新的连接。
1
写完这个后,我将尝试数字。我刚刚检查了一下system.namespaces
,该架构看起来非常简单
我仍然想听听一些意见。
谢谢!
选项2可能是最干净的。假设您已经使用打开了一个Connection
名为Mongoose的对象,则可以通过访问本地mongo
对象。从那里您可以打电话给应该提供您所寻找的东西:conn``mongoose.createConnection``Db``conn.db
collectionNames
conn.db.collectionNames(function (err, names) {
// names contains an array of objects that contain the collection names
});
您还可以将集合名称作为参数传递,collectionNames
以将结果过滤为所需的内容。
猫鼬4.x更新
在Mongoose
4.x使用的2.x版本的MongoDB本机驱动程序中,collectionNames
已被替换为listCollections
接受过滤器并返回游标,因此您可以这样做:
mongoose.connection.db.listCollections({name: 'mycollectionname'})
.next(function(err, collinfo) {
if (collinfo) {
// The collection exists
}
});
问题内容: 有没有一种方法可以检查nodestore的firestore中是否存在子集合? 目前,我正在使用文档,但是我需要检查文档中是否存在子类以便写入一些数据。 问题答案: 就在这里。您可以使用docs.length来知道子集合是否存在。 我制作了一个样本来指导您,希望对您有所帮助。
问题内容: 我有以下问题: 我正在将Java驱动程序用于MongoDB 3。 在版本2中,可以执行DB.collectionExists(name)来检查所选数据库中是否存在一个集合。 在版本3中,从DB切换到MongoDatabase,此方法不再存在。 如何查找数据库中是否存在集合?我试图使用listCollectionNames()遍历集合,但这似乎效果很差。 谢谢你的帮助 问题答案: 你是对
本文向大家介绍JavaScript 检查集合中是否存在值,包括了JavaScript 检查集合中是否存在值的使用技巧和注意事项,需要的朋友参考一下 示例 要检查集合中是否存在给定值,请使用方法:.has() true如果someVal出现在集合中,将返回,false否则返回。
问题内容: 如何检查 文件 的存在? 在模块的文档中,有方法的说明。但是,据我了解,它只检查目录的存在。而且我需要检查 文件 ! 如何才能做到这一点? 问题答案: 为什么不尝试打开文件? 无论如何,经过一分钟的搜索,请尝试以下操作: 对于Node.js v0.12.x及更高版本 双方并已弃用 *编辑: 已更改: 至: 林特抱怨双重等于不是三次等于。 使用fs.stat:
我正在Node上做一个基于开源微服务的项目。js。 有些微服务非常薄,只与MongoDB交互,所以我没有在那里使用Sails,而是更喜欢直接使用Mongoose。因此,我为需要在mongo中持久化的每个对象实现了mongoose模式。 我还将在其他一些微服务中使用Sails.js,因此我必须为我想要持久化的对象实现Waterline类型的模式 问题是模式的重复,我觉得这没用。 我希望在所有服务中使
问题内容: 我是Node.js和Heroku的新手,我构建了一个使用node.js并从mongodb实例检索一些数据的小应用程序。我设置了整个程序,但是我的问题是我认为mongodb的语法很简单。 我需要在启动应用程序时知道我的收藏夹中是否包含任何东西,如果没有,则不进行初始化。我尝试调用collection.count(),但返回未定义。 我尝试这样做 任何帮助表示赞赏。 问题答案: 任何访问数