PostGIS聽vs聽PostgreSQL

Need advice about which tool to choose?Ask the StackShare community!

PostGIS

281
281
+ 1
29
PostgreSQL

56.9K
44.8K
+ 1
3.5K
Add tool

PostGIS vs PostgreSQL: What are the differences?

What is PostGIS? Open source spatial database. PostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing location queries to be run in SQL.

What is PostgreSQL? A powerful, open source object-relational database system. PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions.

PostGIS and PostgreSQL are primarily classified as "Database" and "Databases" tools respectively.

"De facto GIS in SQL" is the top reason why over 22 developers like PostGIS, while over 744 developers mention "Relational database" as the leading cause for choosing PostgreSQL.

PostGIS and PostgreSQL are both open source tools. PostgreSQL with 5.38K GitHub stars and 1.79K forks on GitHub appears to be more popular than PostGIS with 636 GitHub stars and 242 GitHub forks.

According to the StackShare community, PostgreSQL has a broader approval, being mentioned in 2701 company stacks & 2097 developers stacks; compared to PostGIS, which is listed in 53 company stacks and 14 developer stacks.

Advice on PostGIS and PostgreSQL
Dennis Kraaijeveld
Needs advice
on
PostgreSQL
MongoDB
and
ExpressJS

For learning purposes, I am trying to design a dashboard that displays the total revenue from all connected webshops/marketplaces, displaying incoming orders, total orders, etc.

So I will need to get the data (using Node backend) from the Shopify and marketplace APIs, storing this in the database, and get the data from the back end.

My question is:

What kind of database should I use? Is MongoDB fine for storing this kind of data? Or should I go with a SQL database?

See more
Replies (3)
Arash JalaliGhalibaf
Software Engineer at Cafe Bazaar | 10 upvotes 路 36K views
Recommends
PostgreSQL

Postgres is a solid database with a promising background. In the relational side of database design, I see Postgres as an absolute; Now the arguments and conflicts come in when talking about NoSQL data types. The truth is jsonb in Postgres is efficient and gives a good performance and storage. In a comparison with MongoDB with the same resources (such as RAM and CPU) with better tools and community, I think you should go for Postgres and use jsonb for some of the data. All in all, don't use a NoSQL database just cause you have the data type matching this tech, have both SQL and NoSQL at the same time.

See more
Recommends
MongoDB

I have found MongoDB easier to work with. Postgres and SQL in general, in my experience, is harder to work with. While Postgres does provide data consistency, MongoDB provides flexibility. I've found the MongoDB ecosystem to be really great with a good community. I've worked with MongoDB in production and it's been great. I really like the aggregation system and using query operators such as $in, $pull, $push.

While my opinion may be unpopular, I have found MongoDB really great for relational data, using aggregations from a code perspective. In general, data types are also more flexible with MongoDB.

See more
Luciano Bustos
Senior Software Developer | 1 upvotes 路 26.6K views
Recommends
PostgreSQL

I will use PostgreSQL because you have more powerfull feature for data agregation and views (the raw data from shopify and others could be stored as is) and then use views to produce diff. kind of reports unless you wanna create those aggregations/views in nodejs code. HTH

See more
View all (3)
Krunal Shah
Needs advice
on
PostgreSQL
and
MongoDB

I want to store the data retrieved from multiple APIs and perform some analytics on it. The data stored in DB will never/hardly change. First, I thought it would be better to retrieve the data and create table columns for them, but some data might have different columns than others. So I thought about storing the JSON response from API directly to the table and use it. So which database will be the better choice, PostgreSQL or MongoDB.

See more
Replies (6)
Nikhil Gurnani
Sr. Backend Engineer at Grappus | 8 upvotes 路 33.7K views
Recommends
MongoDB

Hey Krunal, your requirement sounds pretty clear and specific to what you want to do with that data. My recommendation to you, would be to use MongoDB. Since schema-less IO is faster in MongoDB, your general speed of reading / writing from and to the database would be quick. Additionally, the aggregate framework is very powerful with large data so that is also something that you can use in computing your analytics.

See more
Maxim Ryakhovskiy
Recommends
Mongoose
MongoDB

I suggest you to go with MongoDB, because it is schema-less, i.e., it permits you to easily manipulate the schema of a table. If you want to add a column, it can be done without much effort. Moreover, MongoDB can deal with more types of data, since the latest is stored as key-value pair. I do not what kind of analysis you are going to do, but NoSQL is not the best choice if you are going to use complex queries. In addition, if you are working with huge amount of data and you are interested in optimising the performance, I suggest you PostgreSQL. Since you are speaking about API and JSON, I guess that you may using Node JS for fetching API. I suggest you to try Mongoose, which facilitate the use of MongoDB with Node JS.

See more
Tarun Batra
Back End Developer at instabox | 3 upvotes 路 30.3K views

Looks like the use case is to store JSON data. mongoDB and Postgres differ in so many aspects like scaling and consistency. Postgres has excellent JSON support now with the power of SQL. MongoDB is good in handling schema less data. However in this case it seems these differences don鈥檛 matter that much. I鈥檇 recommend you go with what you are most comfortable with.

See more
Bob Bass
President & Full Stack Enginee at Narro, LLC | 3 upvotes 路 30.1K views
Recommends
PostgreSQL
MySQL

This is largely a matter of opinion. I see that someone else responded and recommended MongoDB but since you are doing data analytics, I highly recommend you go with SQL. You're going to have a really hard time normalizing the data when you can't manipulate relationships and bulk edit with a nice update query.

I'm much more experienced with MySQL than any other database and I am having a hard time getting on board with noSQL entirely because it's really hard to query complex data with relationships using noSQL. I'm using Firestore with one of my apps and MongoDB with another app but they both use MySQL for the heavy lifting and then a document database for things like permissions, caching, etc.

It sounds like the type of problem you need to reverse engineer. I'm sure you can imagine what the data sets would look like if you use MongoDB or Postgres. I suspect that putting in a little bit more work up front will pay high dividends and productivity once the data is normalized.

Again - it's largely a matter of preference but I prefer SQL almost every time.

See more
Luiz H. Rapat茫o
Senior Software Engineer at rapatao.com | 3 upvotes 路 30.2K views
Recommends
MongoDB

I don't have an unquestionable opinion regarding your use case. I only trend to pick the MongoDB since it is schemaless avoiding null columns that you not always know when it is used (it depends on the source of the data). The only drawback that I could consider is the query's complexity in MongoDB, sometimes it is a bit tricky, when compared to the traditional SQL queries.

See more
Recommends
MongoDB

MongoDB should be better for unstructured/less structured data.

See more
View all (6)
Needs advice
on
PostgreSQL
and
MongoDB

I need urgent advice from you all! I am making a web-based food ordering platform which includes 3 different ordering methods (Dine-in using QR code scanning + Take away + Home Delivery) and a table reservation system. We are using React for the front-end, and I need your advice if I should use NestJS or ExpressJS for the backend. And regarding the database, which database should I use, MongoDB or PostgreSQL? Which combination will be better? PS. We want to follow the microservice architecture as scalability, reliability, and usability are the most important Non Functional requirements. Expert advice is needed, please. A load of thanks in advance. Kind Regards, Miqdad

See more
Replies (3)
Stephen Badger | Vital Beats
Senior DevOps Engineer at Vital Beats | 9 upvotes 路 42.7K views

I can't speak for the NestJS vs ExpressJS discussion, but I can given a viewpoint on databases.

The main thing to consider around database choice, is what "shape" the data will be in, and the kind of read/write patterns you expect of that data. The blog example shows up so much for DBMS like MongoDB, because it showcases what NoSQL / document storage is very scalable and performant in: mostly isolated documents with a few views / ways to order them and filter them. In your case, I can imagine a number of "relations" already, which suggest a more traditional SQL solution would work well: You have restaurants, they have maybe a few menus (regular, gluten-free etc), with menu items in, which have different prices over time (25% discount on christmas food just after christmas, 50% off pizzas on wednesdays). Then there's a whole different set of "relations" for people ordering, like showing them past orders, which need to refer to the restaurant etc, and credit card transaction information for refunds etc. That to me suggests PostgreSQL, which will scale quite well if you database design is okay.

PostgreSQL also offers you some extensions, which are just amazing for your use-case. https://postgis.net/ for example will let you query for restaurants based on location, without the big cost that comes from constantly using something like Google Maps API to work out which restaurants are near to someone ordering. Partitioning and window functions will be great for your own use internally too, like answering questions of "What types of takeways perform the best for us, Italian, Mexican?" or in combination with PostGIS, answering questions like "What kind of takeways do we need to market to, to improve our selection?".

While these things can all be implemented in MongoDB, you tend to lose some of the convenience of ACID or have to deal with things like eventual consistency, which requires more thinking on the part of your engineers. PostgreSQL offers decent (if more complex) scalablity and redundancy solutions, and is honestly very well proven and plenty of documentation exists on optimising queries.

See more
Anis Zehani
Recommends
MongoDB

Hello, i build microservice systems using Angular And Spring (Java) so i can't help with with ur back end choice, BUT, i definitely advice you to use a Nosql database, thus MongoDB of course or even Cassandra if your looking for extreme scalability with zero point of failure. Anyway, Nosql if much more faster then Sql (in your case Postresql DB). All you wanna do with sql can also be done by nosql (not the opposite of course).I also advice you to use docker containers + kubernetes to orchestrate them, if you need scalability and replication, that way your app can support auto scalability (in case ur users number goes high). Best of luck

See more
Carlos Iglesias
Recommends

About PostgreSQL vs MongoDB: short answer. Both are great. Choose what you like the most. Only if you expect millions of users, I鈥榣l incline with MongoDB.

See more
View all (3)
Decisions about PostGIS and PostgreSQL
Anthony Simon
Lead Engineer at Stylight | 20 upvotes 路 44.9K views

I try to follow an 80/20 distribution when it comes to my choice of tools. This means my stack consists of about 80% software I already know well, but I do allow myself 20% of the stack to explore tech I have less experience with.

The exact ratio is not what鈥檚 important here, it鈥檚 more the fact that you should lean towards using proven technologies.

I wrote more about this on my blog post on Choosing Boring Technology: https://panelbear.com/blog/boring-tech/

See more
Daniel Moya
Data Engineer at Dimensigon | 4 upvotes 路 124.3K views

We have chosen Tibero over Oracle because we want to offer a PL/SQL-as-a-Service that the users can deploy in any Cloud without concerns from our website at some standard cost. With Oracle Database, developers would have to worry about what they implement and the related costs of each feature but the licensing model from Tibero is just 1 price and we have all features included, so we don't have to worry and developers using our SQLaaS neither. PostgreSQL would be open source. We have chosen Tibero over Oracle because we want to offer a PL/SQL that you can deploy in any Cloud without concerns. PostgreSQL would be the open source option but we need to offer an SQLaaS with encryption and more enterprise features in the background and best value option we have found, it was Tibero Database for PL/SQL-based applications.

See more
Tom Klein

The Gentlent Tech Team made lots of updates within the past year. The biggest one being our database:

We decided to migrate our #PostgreSQL -based database systems to a custom implementation of #Cassandra . This allows us to integrate our product data perfectly in a system that just makes sense. High availability and scalability are supported out of the box.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of PostGIS
Pros of PostgreSQL
  • 24
    De facto GIS in SQL
  • 5
    Good Documentation
  • 753
    Relational database
  • 506
    High availability
  • 436
    Enterprise class database
  • 379
    Sql
  • 298
    Sql + nosql
  • 171
    Great community
  • 145
    Easy to setup
  • 129
    Heroku
  • 128
    Secure by default
  • 111
    Postgis
  • 48
    Supports Key-Value
  • 46
    Great JSON support
  • 32
    Cross platform
  • 29
    Extensible
  • 26
    Replication
  • 24
    Triggers
  • 22
    Rollback
  • 21
    Multiversion concurrency control
  • 20
    Open source
  • 17
    Heroku Add-on
  • 14
    Stable, Simple and Good Performance
  • 13
    Powerful
  • 12
    Lets be serious, what other SQL DB would you go for?
  • 9
    Good documentation
  • 7
    Intelligent optimizer
  • 7
    Scalable
  • 6
    Transactional DDL
  • 6
    Modern
  • 6
    Reliable
  • 5
    Free
  • 5
    One stop solution for all things sql no matter the os
  • 4
    Relational database with MVCC
  • 3
    Faster Development
  • 3
    Full-Text Search
  • 3
    Developer friendly
  • 2
    Excellent source code
  • 2
    search
  • 2
    Great DB for Transactional system or Application
  • 1
    Full-text
  • 1
    Free version
  • 1
    Text
  • 1
    Open-source

Sign up to add or upvote prosMake informed product decisions

Cons of PostGIS
Cons of PostgreSQL
    Be the first to leave a con
    • 9
      Table/index bloatings

    Sign up to add or upvote consMake informed product decisions

    What is PostGIS?

    PostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing location queries to be run in SQL.

    What is PostgreSQL?

    PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use PostGIS?
    What companies use PostgreSQL?
    See which teams inside your own company are using PostGIS or PostgreSQL.
    Sign up for Private StackShareLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with PostGIS?
    What tools integrate with PostgreSQL?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    Blog Posts

    Dec 8 2020 at 5:50PM

    DigitalOcean

    +11
    2
    1705
    Nov 20 2019 at 3:38AM

    OneSignal

    +8
    7
    3735
    Jul 9 2019 at 7:22PM

    Blue Medora

    +8
    11
    1717
    +42
    46
    38954
    What are some alternatives to PostGIS and PostgreSQL?
    MongoDB
    MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
    MySQL
    The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.
    Elasticsearch
    Elasticsearch is a distributed, RESTful search and analytics engine capable of storing data and searching it in near real time. Elasticsearch, Kibana, Beats and Logstash are the Elastic Stack (sometimes called the ELK Stack).
    ArcGIS
    It is a geographic information system for working with maps and geographic information. It is used for creating and using maps, compiling geographic data, analyzing mapped information, sharing and much more.
    GeoServer
    It is developed, tested, and supported as community-driven project by a diverse group of individuals and organizations. It is designed for interoperability, it publishes data from any major spatial data source using open standards.
    See all alternatives
    How developers use PostGIS and PostgreSQL
    AngeloR uses
    PostgreSQL

    We use postgresql for the merge between sql/nosql. A lot of our data is unstructured JSON, or JSON that is currently in flux due to some MVP/interation processes that are going on. PostgreSQL gives the capability to do this.

    At the moment PostgreSQL on amazon is only at 9.5 which is one minor version down from support for document fragment updates which is something that we are waiting for. However, that may be some ways away.

    Other than that, we are using PostgreSQL as our main SQL store as a replacement for all the MSSQL databases that we have. Not only does it have great support through RDS (small ops team), but it also has some great ways for us to migrate off RDS to managed EC2 instances down the line if we need to.

    Cloudcraft uses
    PostgreSQL

    PostgreSQL combines the best aspects of traditional SQL databases such as reliability, consistent performance, transactions, querying power, etc. with the flexibility of schemaless noSQL systems that are all the rage these days. Through the powerful JSON column types and indexes, you can now have your cake and eat it too! PostgreSQL may seem a bit arcane and old fashioned at first, but the developers have clearly shown that they understand databases and the storage trends better than almost anyone else. It definitely deserves to be part of everyone's toolbox; when you find yourself needing rock solid performance, operational simplicity and reliability, reach for PostgresQL.

    Brandon Adams uses
    PostgreSQL

    Relational data stores solve a lot of problems reasonably well. Postgres has some data types that are really handy such as spatial, json, and a plethora of useful dates and integers. It has good availability of indexing solutions, and is well-supported for both custom modifications as well as hosting options (I like Amazon's Postgres for RDS). I use HoneySQL for Clojure as a composable AST that translates reliably to SQL. I typically use JDBC on Clojure, usually via org.clojure/java.jdbc.

    ReviewTrackers uses
    PostgreSQL

    PostgreSQL is responsible for nearly all data storage, validation and integrity. We leverage constraints, functions and custom extensions to ensure we have only one source of truth for our data access rules and that those rules live as close to the data as possible. Call us crazy, but ORMs only lead to ruin and despair.

    Jeff Flynn uses
    PostgreSQL

    Tried MongoDB - early euphoria - later dread. Tried MySQL - not bad at all. Found PostgreSQL - will never go back. So much support for this it should be your first choice. Simple local (free) installation, and one-click setup in Heroku - lots of options in terms of pricing/performance combinations.

    Kalibrr uses
    PostGIS

    PostGIS makes it easy (and fast) to do geographic queries, such as nearest-neighbor and bounding box queries.

    Sail Tactics uses
    PostGIS

    Backend for weather forecast data that Geoserver queries to build updated weather maps

    Mathias Vonende uses
    PostGIS

    Storage for geo data.

    DNT uses
    PostGIS

    Geospatial queries