相关疑难解决方法(0)

Node.js - Mongoose - 检查集合是否存在

我需要使用mongoose插入一些数据,但是集合的名称是由用户在插入时提供的,所以我首先要检查集合是否存在.

我知道如何检查集合是否存在的方式是查询system.namespaces集合.我可以看到3种可行的方法.

  1. 找到一种system.namespaces使用mongoose 查询的方法(可能定义与db中的模式匹配的模式).
  2. 从mongoose获取一些底层node-mongodb-native对象并手动执行查询.无论如何,这是我想学习的方法.
  3. 使用node-mongodb-native(或其他一些驱动程序)的单独实例来执行查询

3是最不优雅的,也是我想要避免的,我不想加载驱动程序的另一个实例,也不想在mongoose创建一个时创建新的连接.

1写完这篇文章之后我会尝试编号.我刚刚检查过system.namespaces,架构看起来很简单

我还是想听听一些意见.

谢谢!

mongoose mongodb node.js

24
推荐指数
1
解决办法
2万
查看次数

NodeJS + Mongo native - 在查询之前检查集合是否存在

我有一个函数,试图从MongoDB中的设置集合中获取特定值.设置集合中包含设置值的设置对象标记为{'settings':'settings'}.架构是:

collection:setting
|--object
   |--{'settings':'settings'}
   |--{'valueA':'valueA'}
   |--...
Run Code Online (Sandbox Code Playgroud)

问题是当我第一次查询设置对象时,集合'settings'根本不存在.所以,

exports.getInstruments = function (callback) {
db.collection("settings", function(error, settings) {
    settings.find({ "settings" : "settings" }), (function(err, doc) {
           callback(doc.instruments);
    }); 
]);  
}
Run Code Online (Sandbox Code Playgroud)

只是挂起并且不调用回调.如果收集不存在,我应该返回""或未定义,否则 - doc.instrumens.

collections mongodb node.js

3
推荐指数
2
解决办法
1万
查看次数

标签 统计

mongodb ×2

node.js ×2

collections ×1

mongoose ×1