写点什么

微软发布 Azure Cosmos DB 中 MongoDB 聚合功能的公开预览版本

  • 2018-03-27
  • 本文字数:1216 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

去年十一月,微软宣布在Azure Cosmos DB 中支持MongoDB 的更多功能。随着Cosmos DB 服务最新版本的部署,微软包含了对MongoDB 聚合管道支持的预览版本,允许开发人员通过联合多个聚合“stage”,创建更复杂的查询和数据操作。

微软的Azure Cosmos DB 是一个全球的分布式多模型、多API 的数据库服务。多模型支持Graph、列族(column family)、key-value 和文档。除了多模型的支持以外,它还提供了对多种API 访问的支持,包括MongoDB API,这意味着Mongo 应用可以直接与Cosmos DB 进行通信。除此之外,各种原生的MongoDB 特性也内置到了Cosmos DB 的MongoDB API 中。

Mongo 开发了聚合管道(aggregation pipeline) 功能,这是map-reduce 的替代方案,它是一个更加轻量级和更自然的编程模型。该特性是微软为Cosmos DB 提供的众多特性之一,他们希望通过这些特性促使客户从原生MongoDB 中迁移出来。另外,Cosmos DB 工程团队还将用户要求的MongoDB 原生特性直接构建到了Cosmos DB 中。Azure Cosmos DB 目前还没有完全支持所有的MongoDB 原生特性,当然它正在朝着这个方向努力。在Channel 9 Azure Friday 合辑中,有关 Azure Cosmos DB 为 MongoDB 提供了哪些新功能的访谈里面,来自 Cosmos DB 工程团队的 Emily Lawton 这样告诉 Scott Hanselman:

在最近的几个月和几周的时间内,我们正在做一些新的特性,这些特性能够让 Mongo 客户将更复杂更强大的应用迁移至 Cosmos。随着这些更新的发布,我们可以自信地说,我们支持了所有最受欢迎的 Mongo 特性并且将投入花费到了最适当的地方,我们可以向任何从 Mongo 迁移过来的客户保证,我们有适当的工具和资源确保他们能够在 Cosmos 中获得成功。

借助 MongoDB 的聚合管道,在将结果返回给客户端之前,更多的数据处理会在服务端完成。这项特性的明显收益就是在网络上数据传输会更少,发起调用的客户端所接收到的数据量会更加易于管理。举例来说,典型的聚合管道可以是在 MongoDB 实例中查找记录,这样能够通过一个查询来实现,该查询会基于表达式进行匹配和分组以及计数:


图片来源: https://azure.microsoft.com/en-us/blog/azure-cosmosdb-extends-support-for-mongodb-aggregation-pipeline-unique-indexes-and-more/

MongoDB 聚合管道是通过聚合命令 aggregate、count 或 distinct 来实现的,命令后面紧接着的是一个或多个聚合 stage,其中可以使用表达式、累加器(accumulator)和操作符。关于更多细节信息,请参考微软网站上的文档。

开源的MongoDB 客户端驱动允许开发人员与Cosmos DB 中的MongoDB API 进行通信。对聚合管道的支持已经发布公开预览,开发人员可以在Azure 门户中通过任意MongoDB API 账户的Preview Features 页面启用该特性。

查看英文原文 Microsoft Announces a Public Preview of the MongoDB Aggregation Feature in Azure Cosmos DB

2018-03-27 19:001968

评论

发布
暂无评论
发现更多内容

MinIO Client 使用(一)

耳东@Erdong

Minio 8月日更 mc minio client

失败的小项目-外卖cps

箭上有毒

8月日更

Android开发:获取安卓App版本号的方法步骤

三掌柜

8月日更

Go语言那些事儿之管道的关闭

Regan Yue

Go 语言 8月日更 管道

数据缓存历险记(五)--LRU缓存算法的最终篇

卢卡多多

缓存 LRU Redis 协议 8月日更

Ipfs靠谱吗?ipfs中国授权公司都有哪些?

分布式存储 区块链+ IPFS fil

Linux之netstat命令

入门小站

Linux

JavaScript Array 方法详解

程序员海军

JavaScript 方法 大前端 array 引航计划

仿imtoken钱包源码,TP钱包源码开发

【Flutter 专题】70 图解自定义 ACEStepper 步进器

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

融云CTO杨攀:把握核心技术,促进产学研用融合发展

融云 RongCloud

oeasy教您玩转vim - 14 - # 行头行尾

o

Rust从0到1-模式-相关语法

rust 语法 模式 Patterns Syntax

LeetCode题解:781. 森林中的兔子,贪心,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Django 做个小后台,细节在完善一点点,滚雪球学 Python 第三阶段

梦想橡皮擦

8月日更

netty系列之:自动重连

程序那些事

Java Netty 程序那些事 响应式系统

【LeetCode】从上到下打印二叉树Java题解

Albert

算法 LeetCode 8月日更

MySQL知识点整理

一个大红包

8月日更

全球增长最快的对象存储开源系统MinIO

liuzhen007

8月日更

如果面试官问你 JVM,额外回答逃逸分析技术会让你加分!

陈皮的JavaLib

Java 面试 JVM 逃逸分析 8月日更

一文带你了解 TreeMap ,LinkedHashMap 的主要特点

4ye

Java 后端 hashmap LinkedHashMap 8月日更

Android开发:引入重复包报错Error:Execution failed for task ‘:app:transform...’解决方法

三掌柜

8月日更 8月

从安卓转到Java开发,我吃透了这份pdf,终于4面拿下美团offer

Java~~~

Java spring 面试 微服务 JVM

端口占用解决方案

一个大红包

8月日更

写作 7 堂课——【6. 清单式写作】

LeifChen

清单 写作技巧 8月日更 检查清单

【设计模式】代理模式

Andy阿辉

C# 后端 设计模式 8月日更

命令行操作Java程序的那些事~

Bob

Java 命令行 8月日更

【前端 · 面试 】HTTP 总结(十一)—— HTTPS 概述

编程三昧

面试 https 8月日更

异步编程的终极解决方案 async/await:用同步的方式去写异步代码

前端依依

大前端 js 经验分享 异步 知识讲解

Web 框架 Gin | Gin 介绍

xcbeyond

Go 语言 gin 8月日更

在线年龄计算器

入门小站

工具

微软发布Azure Cosmos DB中MongoDB聚合功能的公开预览版本_数据库_Steef-Jan Wiggers_InfoQ精选文章