I want to track the user behavior on website. I am tracking the mouse movement and after tracking certain number of mouse movements, i am planning to send this data to my server, where i will code an API which stores this data into database.

The data will be like an array and each cell of array have this:

{x: some-value, y: some-value, some-other-properties:{}}

My solutions

Initially i was thinking to store this data into SQL database. Then i thought this data is more like a non-structured data, it will also grow rapidly with time as i have many websites in future and number of users will grow very fast, i should store it in MongoDB (NOSQL database). The other option in my mind is influxDB which is used to store time-series data. Now, we see the mouse-movement is more like a time-series data. Hence i am just confused and need some expert opinion.

I want to store data efficiently. This is my main concern.

  • You can store your non-structure data in MongoDB. In MongoDB always store data in format of {"key" : "value"} . Nov 14, 2017 at 9:30
  • I have captured "Geospatial Data" with mouse movement through "MongoDB Compass". Nov 14, 2017 at 9:48

1 Answer 1


Which database is best for storing mouse movement data for analytic stuff?

As per MongoDB BOL Here

MongoDB Compass is the GUI for MongoDB. Visually explore your data. Run ad hoc queries in seconds. Interact with your data with full CRUD(Create,Read,Update,Delete) functionality. View and optimize your query performance. Available on Linux, Mac, or Windows. Compass empowers you to make smarter decisions about indexing, document validation, and more.

As with the help of MongoDB Compass you can

Visualize and explore
Insert, modify, and delete
Debug and optimize

Know your data with built-in schema visualization

MongoDB Compass analyzes your documents and displays rich structures within your collections through an intuitive GUI. It allows you to quickly visualize and explore your schema to understand the frequency, types and ranges of fields in your data set.

Get immediate insight into server status and query performance

Real-time server statistics let you view key server metrics and database operations. Drill down into database operations easily and understand your most active collections.

A better approach to CRUD makes it easier to interact with your data

Modify existing documents with greater confidence using the intuitive visual editor, or insert new documents and clone or delete existing ones in just a few clicks.

Understand performance issues with visual explain plans

Know how queries are running through an easy-to-understand GUI that helps you identify and resolve performance issues.

View utilization and manage your indexes

Understand the type and size of your indexes, their utilization and special properties. Add and remove indexes at the click of a button.

A simpler way to validate your data

Create and modify rules that validate your data using a simple point and click interface. CRUD support lets you fix data quality issues easily in individual documents.

Visualize, understand, and work with your geospatial data

Point and click to construct sophisticated queries, execute them with the push of a button and Compass will display your results both graphically and as sets of JSON documents.

As per your said database store structure , it's a format of {key : Value} pair. which is JSON format is fully supported

{x: some-value, y: some-value, some-other-properties:{}}

For Your Further ref For Understanding the JSON Format

Not the answer you're looking for? Browse other questions tagged or ask your own question.