【问题标题】:Azure-cosmosdb - unable to retrieve documentsAzure-cosmosdb - 无法检索文档
【发布时间】:2018-03-08 11:25:47
【问题描述】:

我正在尝试从存储在 azure cosmos db 中的集合中检索所有文档。

但是,查询后我得到以下错误

"MongoError: Command is not supported
    at I:\xxxxx\bot\node_modules\mongodb-core\lib\cursor.js:771:34
    at handleCallback (I:\xxxxx\bot\node_modules\mongodb-core\lib\cursor.js:178:5)
    at setCursorDeadAndNotified (I:\xxx\bot\node_modules\mongodb-core\lib\cursor.js:545:3)
    at nextFunction (I:\xxxxx\bot\node_modules\mongodb-core\lib\cursor.js:770:14)
    at I:\xxxxx\bot\node_modules\mongodb-core\lib\cursor.js:667:7
    at queryCallback (I:\xxxx\bot\node_modules\mongodb-core\lib\cursor.js:263:5)
    at I:\xxxxx\bot\node_modules\mongodb-core\lib\connection\pool.js:541:18
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickDomainCallback (internal/process/next_tick.js:218:9)"

当我尝试将文档转换为数组toArray()时,光标似乎正在发送这个@

这是我试图检索文档的函数

var getQuestions = function(){
    return new Promise((resolve, reject) => {
        const questionDB = state.db.db('admin')
        const program = questionDB.collection('Version')
        program.find().toArray()
            .then(function(docs){
                console.log('docs : ', docs)
            })
            .catch(function(err){
                console.log('err : ', err)
            })
    })
}

我做错了吗?

【问题讨论】:

  • 你是如何连接到 cosmos db 的?你的连接字符串在哪里?
  • 你没有做错什么。 CosmosDB 与 MongoDB 不完全兼容,因此出现错误。
  • 现在有更新吗?

标签: node.js mongodb azure azure-cosmosdb


【解决方案1】:

当我按照doc 中的示例代码进行操作时,我重现了您的问题。

query.js:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://***.documents.azure.com:10255/?ssl=true";

MongoClient.connect(url, {user: '***', password: '***'},function(err, db) {
  if (err) throw err;
  var dbo = db.db("db");
  var query = { name: "jay" };
  dbo.collection("coll").find(query).toArray(function(err, result) {
      if (err) throw err;
      console.log(result);
      db.close();
  });
});

错误:

Azure Mongo API 并不支持所有的 MongoDB 特性和语法,请参考这个官方doc 来检查 Azure Mongo API 支持的特性和语法。在该列表中找不到toArray 方法。

希望对你有帮助。

【讨论】:

  • sigh .. 太难过了 .. 所以唯一的选择是在光标对象中做一个 forEach 吗? ://
猜你喜欢
  • 1970-01-01
  • 2019-08-05
  • 1970-01-01
  • 2017-08-15
  • 2021-11-17
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 2019-08-30
相关资源
最近更新 更多