Azure云中带有MongoDB后端的Mosca MQTT代理(node.js)

Azure云中带有MongoDB后端的Mosca MQTT代理(node.js),node.js,mongodb,azure,mqtt,mosca,Node.js,Mongodb,Azure,Mqtt,Mosca,我正在尝试在Node.js环境中运行Mosca MQTT代理,其MongoDB后端位于Microsoft的Azure云中。DocumentDB存储有一个MongoDB API 首先,我从Mosca网站复制了示例代码 。。。这在本地安装的MongoDB服务器上运行良好 然后,我用Node.js连接字符串替换了两个url:实例,该字符串可以从Azure门户获得。 之后,与Azure DocumentDB的连接失败,出现以下错误: $ node index.js /[...]/node_module

我正在尝试在Node.js环境中运行Mosca MQTT代理,其MongoDB后端位于Microsoft的Azure云中。DocumentDB存储有一个MongoDB API

首先,我从Mosca网站复制了示例代码

。。。这在本地安装的MongoDB服务器上运行良好

然后,我用Node.js连接字符串替换了两个
url:
实例,该字符串可以从Azure门户获得。 之后,与Azure DocumentDB的连接失败,出现以下错误:

$ node index.js 
/[...]/node_modules/mongodb/lib/utils.js:98
process.nextTick(function() { throw err; });
                              ^
Error: Cannot recover. Collection is not capped.
at /[...]/node_modules/ascoltatori/lib/mongo_ascoltatore.js:241:26
at handleCallback (/[...]/node_modules/mongodb/lib/utils.js:95:56)
at /[...]/node_modules/mongodb/lib/collection.js:1559:5
at handleCallback (/[...]/node_modules/mongodb/lib/utils.js:95:56)
at /[...]/node_modules/mongodb/lib/collection.js:1528:5
at handleCallback (/[...]/node_modules/mongodb/lib/utils.js:95:56)
at /[...]/node_modules/mongodb/lib/cursor.js:852:16
at handleCallback (/[...]/node_modules/mongodb-core/lib/cursor.js:171:5)
at setCursorDeadAndNotified (/[...]/node_modules/mongodb-core/lib cursor.js:506:3)
at nextFunction (/[...]/node_modules/mongodb-core/lib/cursor.js:652:7)
at Cursor.next [as _next] (/[...]/node_modules/mongodb-core/lib cursor.js:693:3)
at fetchDocs (/[...]/node_modules/mongodb/lib/cursor.js:848:10)
at /[...]/node_modules/mongodb/lib/cursor.js:871:7
at handleCallback (/[...]/node_modules/mongodb-core/lib/cursor.js:171:5)
at nextFunction (/[...]/node_modules/mongodb-core/lib/cursor.js:683:5)
at /[...]/node_modules/mongodb-core/lib/cursor.js:594:7
at queryCallback (/[...]/node_modules/mongodb-core/lib/cursor.js:253:5)
at /[...]/node_modules/mongodb-core/lib/connection/pool.js:457:18
at nextTickCallbackWith0Args (node.js:419:9)
at process._tickCallback (node.js:348:13)

你知道这里缺少什么吗?

我不确定,但我假设Azure DocumentDB没有实现MongoDB的所有功能,它只是提供了相同的网络API,这样你就可以使用现有的客户端与它对话


在这种情况下,它似乎不支持mosca用来限制最终存储在数据库中的数据量的(基本上类似于循环缓冲区)。Mosca正在测试它创建的集合,发现它没有按照预期进行设置,于是退出。虽然您可以删除此测试代码,但这可能意味着您将得到一个快速增长的集合,该集合期望数据库自动删除旧记录。

我不确定,但我假设Azure DocumentDB没有实现MongoDB的所有功能,它只是提供了相同的网络API,因此您可以使用现有的客户端与它进行对话


在这种情况下,它似乎不支持mosca用来限制最终存储在数据库中的数据量的(基本上类似于循环缓冲区)。Mosca正在测试它创建的集合,发现它没有按照预期进行设置,于是退出。虽然您可以删除此测试代码,但这可能意味着您将得到一个快速增长的集合,该集合期望数据库自动删除旧记录。

谢谢您的回答。我刚刚在Microsoft文档中发现了这一点:“针对MongoDB的DocumentDB协议支持旨在与MongoDB兼容。您可以使用现有代码、应用程序、驱动程序和工具来处理DocumentDB。”。。。这听起来确实像是在支持封顶收藏。微软本身还没有回答我的问题。谢谢你的回答。我刚刚在Microsoft文档中发现了这一点:“针对MongoDB的DocumentDB协议支持旨在与MongoDB兼容。您可以使用现有代码、应用程序、驱动程序和工具来处理DocumentDB。”。。。这听起来确实像是在支持封顶收藏。微软本身还没有回答我的问题。
$ node index.js 
/[...]/node_modules/mongodb/lib/utils.js:98
process.nextTick(function() { throw err; });
                              ^
Error: Cannot recover. Collection is not capped.
at /[...]/node_modules/ascoltatori/lib/mongo_ascoltatore.js:241:26
at handleCallback (/[...]/node_modules/mongodb/lib/utils.js:95:56)
at /[...]/node_modules/mongodb/lib/collection.js:1559:5
at handleCallback (/[...]/node_modules/mongodb/lib/utils.js:95:56)
at /[...]/node_modules/mongodb/lib/collection.js:1528:5
at handleCallback (/[...]/node_modules/mongodb/lib/utils.js:95:56)
at /[...]/node_modules/mongodb/lib/cursor.js:852:16
at handleCallback (/[...]/node_modules/mongodb-core/lib/cursor.js:171:5)
at setCursorDeadAndNotified (/[...]/node_modules/mongodb-core/lib cursor.js:506:3)
at nextFunction (/[...]/node_modules/mongodb-core/lib/cursor.js:652:7)
at Cursor.next [as _next] (/[...]/node_modules/mongodb-core/lib cursor.js:693:3)
at fetchDocs (/[...]/node_modules/mongodb/lib/cursor.js:848:10)
at /[...]/node_modules/mongodb/lib/cursor.js:871:7
at handleCallback (/[...]/node_modules/mongodb-core/lib/cursor.js:171:5)
at nextFunction (/[...]/node_modules/mongodb-core/lib/cursor.js:683:5)
at /[...]/node_modules/mongodb-core/lib/cursor.js:594:7
at queryCallback (/[...]/node_modules/mongodb-core/lib/cursor.js:253:5)
at /[...]/node_modules/mongodb-core/lib/connection/pool.js:457:18
at nextTickCallbackWith0Args (node.js:419:9)
at process._tickCallback (node.js:348:13)