CosmosDB MongoDB 适配器投影不起作用

Posted

技术标签:

【中文标题】CosmosDB MongoDB 适配器投影不起作用【英文标题】:CosmosDB MongoDB adapter projection not working 【发布时间】:2019-12-22 18:28:37 【问题描述】:

我正在通过 HapiJS 服务器的 MongoDB 适配器向 CosmosDB 数据库发出请求。 我的请求如下所示:

        dbo
          .collection("storage")
          .find(query, function(
            findErr,
            result
          ) 
            if (findErr) throw findErr;
            (async function() 
              output = result.toArray()
            )();
          );

而且一切正常。但是,如果我尝试添加投影(来自官方docs),则根本没有任何变化。 我正在添加这样的投影:

  .find(query, data:false, function( ...

我错过了什么?

【问题讨论】:

【参考方案1】:

基于here列出的mongodb查询语法,只需要定义查询过滤器。所以你可以像这样调整你的代码:

var query =  "data": false ;
dbo.collection("storage").find(query, function(
            findErr.....

【讨论】:

但是我在查询中有另一个数据,通过它执行查找:` query= type: "Sometype", id:123 ` @Justice47 你的query 怎么样? 它的实际称为 mongodb 投影 - docs.mongodb.com/manual/tutorial/… 这是来自 CosmosDB 文档的示例 - db.families.find( id: "WakefieldFamily" , children: true ) docs.microsoft.com/en-us/azure/cosmos-db/tutorial-query-mongodb【参考方案2】:

似乎我的问题与this 重复, 它是这样工作的:

 .find(query, projection:data:false...

【讨论】:

你可以标记自己结束这个案子,非常感谢。

以上是关于CosmosDB MongoDB 适配器投影不起作用的主要内容,如果未能解决你的问题,请参考以下文章

CosmosDB - Mongodb IsUpsert 不适用于批量更新

Azure CosmosDB (11) MongoDB概念

使用 MongoDB API 无法使用 Prisma 和 CosmosDB 进行更新

用于 MongoDB API 的分片密钥和 Azure CosmosDB

Mongodb 找到不支持的投影选项

(AZURE cosmosDB/mongoDB) 更新数组中对象的特定元素的字段