首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MongoDB vs ElasticSearch

MongoDB是BSON/JSON文档数据库。

ElasticSearch是基于Lucene的文档全文检索库。

MongoDB和ElasticSearch有一些相似和可互相替代性:

- 都接受JSON结构的文档数据。

- 都可以对数据按照属性做索引。

- 都可以支持全文索引。

- 都可以建立集群。

- 都支持数据的增删改查。

但是,它们的不同决定了他们的应用场景是不同的:

- 相比ElasticSearch, MongoDB还是有比较强的实时性。向ElasticSearch插入的数据默认也要1秒钟才能可用。而MongoDB在这方面有更好的事务性,更加类似于传统的数据库。

- ElasticSearch对所有的属性做索引。因此ElasticSearch默认情况下对查询很友好。ElastichSearch在建立索引的过程如果客户端发送的负荷太大太快则会拒绝并报错。

- 而MongoDB默认只有_id是有索引的。在MongoDB中查询一个没有索引,或者是不存在的属性,或者查询时属性名字打错,都会引起全集合扫描,在大数量时会引起服务器反应超时并引发性能问题。

- MongoDB虽然也支持全文索引,但是相对功能较弱。因此用MongoDB做全文索引是不够用的。

因此,MongoDB是一个数据库,提供了一定的事务性,适合做事务处理。ElasticSearch则是有很强的索引和搜索支持,但是事务处理能力很弱。他们不能互相取代。结合各自的优缺点综合利用还是不错的:由于都是文档方式的数据格式,他们之间可以做到比较容易的数据交互。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180721G0W72W00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券