我正在尝试从存储在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();
});
});
错误:
Azure Mongo API不支持所有MongoDB功能和语法,请参考此官方doc来检查Azure Mongo API支持的功能和语法。在该列表中找不到
toArray
方法。希望对您有帮助。