【问题标题】:Cosmos DB MongoDB API can't call Stored Procedures / UDF /Cosmos DB MongoDB API 无法调用存储过程/UDF/
【发布时间】:2018-08-23 21:19:42
【问题描述】:

伪代码:

const mongoose = require('mongoose');

const { Schema } = mongoose;

const UserSchema = new Schema({
  username: String
});

mongoose.model('User', UserSchema);

const con = mongoose.connect(config.uri, config.options, (err) => {
    if(err) throw err;

    const User = con.model('User');
    User.db.db.command({ testProcedure: 1 }, console.log);
})

错误输出:

{ MongoError: Command is not supported
    at /home/username/git/project/node_modules/mongodb-core/lib/connection/pool.js:580:63
    at authenticateStragglers (/home/username/git/project/node_modules/mongodb-core/lib/connection/pool.js:503:16)
    at Connection.messageHandler (/home/username/git/project/node_modules/mongodb-core/lib/connection/pool.js:539:5)
    at emitMessageHandler (/home/username/git/project/node_modules/mongodb-core/lib/connection/connection.js:309:10)
    at TLSSocket.<anonymous> (/home/username/git/project/node_modules/mongodb-core/lib/connection/connection.js:452:17)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at TLSSocket.Readable.push (_stream_readable.js:208:10)
    at TLSWrap.onread (net.js:607:20)
  _t: 'OKMongoResponse',
  ok: 0,
  code: 115,
  errmsg: 'Command is not supported',
  '$err': 'Command is not supported',
  name: 'MongoError',
  [Symbol(mongoErrorContextSymbol)]: {} } null

目标是在 MongoDB 内部进行以下操作(链接到他们自己的 node.js SDK):

https://docs.microsoft.com/en-us/javascript/api/@azure/cosmos/storedprocedure?view=azure-node-latest#execute

【问题讨论】:

标签: javascript mongodb mongoose azure-cosmosdb


【解决方案1】:

存储过程和 UDF 是本机 SQL (DocumentDB) API 和相关 SDK 的一个方面。 MongoDB SDK(或为与 MongoDB 一起工作而定制的框架,例如您正在使用的 Mongoose)对 Cosmos DB 的存储过程或 UDF 一无所知。

您需要针对您的特定语言使用 Cosmos DB SDK 才能利用这些功能。但是,我怀疑它们是否能针对使用 MongoDB API 设置的数据库正常工作。

【讨论】:

  • 漂亮的答案。
猜你喜欢
  • 1970-01-01
  • 2019-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-17
  • 1970-01-01
相关资源
最近更新 更多