我正在尝试从存储在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)
            })
    })
}


难道我做错了什么?

最佳答案

当我遵循此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();
  });
});


错误:

node.js - Azure-cosmosdb-无法检索文档-LMLPHP

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

希望对您有帮助。

10-02 01:45
查看更多