Database
301 results found
-
We need to be able to use $[<identifier>] and "$setOnInsert" in the same command
I want to be able to have a maintain array of counters for a user through a single update statement. If the document containing array of counters does not exist, I want to add it. If it does exist, I want to increment the counter
For example, this command
…
db.inboxItemCounts.updateOne(
// filter
{
"userId": userDoc.userId
},
// update
{
"$setOnInsert": {
"userId": userDoc.userId,
"fromUserSummary": [{
"userName": fromUserDoc.userName,
"count": 1
}]
},
// "$inc": incBody,
"$inc": {
"fromUserSummary.$[userElement].count": 1
}
},
// options
{
"upsert": true,
"writeConcern": { "w": "majority" },
"arrayFilters": [
{ "userElement.userName": { $eq: fromUserDoc.userName }}
]
}2 votes -
hint support for $graphLookup
Currently you can supply a
hint
to theaggregation
call in order to tell MongoDB to use a specific index for the initial$match
. But there is currently no way to specify which index to use for a$graphLookup
later in the pipeline.I would like an optional
hint
property on the$graphLookup
stage.2 votes -
Add numerically-ordered index feature which forces a field to maintain ordering
I would like MongoDB to add better support for ordered lists across documents in a collection. This feature would allow the user to designate a field such as "position", and the DB would ensure the values of that field across documents remain in a monotonically-increasing integer sequence 0, 1, 2, 3, ... N.
I am the maintainer of a Ruby library called "Mongoid Orderable". This library makes numerically ordered field across documents. I'd like to ask MongoDB to investigate moving the functionality of this library to the server.
What use case would this feature/improvement enable?
This feature would be useful…
2 votes -
Add pipeline stage for "downsampling" data
Down sampling is an extremely common operation used when plotting time-series data on graphs when there is too much data to get a good looking/meaningful graph. This would pick and choose "important" data points based on an algorithm such as "Largest-Triangle-Three-Buckets" (https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf) instead of returning the entire data set.
Not only would this make prettier graph but it will also reduce the overall payload returned from the data thus reducing network related latency.
This would be an awesome addition to timeseries!
2 votes -
Allow changing compression of an existing collection
I'd like to switch my database from Snappy to Zstd compression.
Currently, it doesn't seem that it is possible to change the compression of an existing collection.
It would be nice if there were a way to do this, even if (for example) it required making a new replica set member which "re-compresses" the data to the new algorithm while cloning it.
As per SERVER-67726, the only way to do this today is to create a new collection and manually copy with mongodump/mongorestore. This doesn't seem to be a viable option, for uptime / data consistency reasons.
2 votes -
Support readOnly in Json Schema Validation
Support the readOnly property for json schema validation to make certain fields immutable (or the entire document) after creation.
2 votes -
Use dedicated interface for replication and balancing
Like many other big database system, MongoDB may support to specify dedicated interfaces for replication and/or for the balancer (sharding)
Currently you can configure replication sets and shards members only by single hostname/IP-Address, i.e. all data is transmitted over the same network interface.
2 votes -
Make it possible to delete a database via API
It would be nice to be able to delete a database in a replica set via an API call. This would make it easier for CI/CD when deleting clients
Strange thing is that I can delete a complete cluster, but more fine-grained deletion is not possible. like deleting a replica set or only 1 database in a replica set. The most dangerous one is available via API :)2 votes -
Make it clear an index not on present on all shards
We recently had an issue where an index did not get created on all shards. When we ran getIndexes() on mongos it reported the index was present. So we dropped another redundant index thinking all would be well - it was not. We had serious performance issues on the shard that was missing the new index and our app was unavailable for a few hours whilst we re-created the missing index on a huge collection.
It would be better if getIndexes called on mongos reported some sort of warning or indication that it was not present on all shards. The…
2 votes -
CSFLE - Enable aggregation stages for non-encrypted collections
When encrypting any collection with CSFLE, aggregation is not allowed on non-encrypted collections.
The official recommendation is to maintain 2 clients: 1 for CSFLE and 1 for when aggregation is needed. How is this an acceptable solution?
2 votes -
Preserve field order in $merge
Filed on behalf of https://jira.mongodb.org/browse/SERVER-63853:
A variety of formats require strict adherence to the sequence of fields, such as bioinformatics
Files of such formats are often very large and contain nested structures, so it is convenient to use them as collections. But to keep the data belonging to the above specs, it is necessary to keep the arrangement of the fields. Unfortunately, aggregations with saving results to another DB lose original arrangement.
2 votes -
Support for converting between UUID and String
It would be nice to have UUID support for $convert and $toString functions - and maybe also having a new $toUuid function added.
We have documents with UUIDs stored as UUIDs, and others where they are stored as Strings - and need to $lookup a document with an UUID type _id from a document where that uuid is stored as a String. As far as I can tell that is currently not possible.
2 votes -
Tiered TTL for time series collection based on granularity
Currently time series collections have a single TTL across all inherent granularities. It would be great to specify a TTL for each granularity. For example:
For seconds: 1 week
For hours: 1 month
Others: neverCourse information should be held longer than finer information in some cases - currently they all fall under the main TTL specified.
2 votes -
support $lookup for update aggregation
We frequently denormalise either full documents or subsets to different documents in order to speed up reading, create indexes or paginate/sort on fields.
Consider a user collection and a task collection, if a task can be assigned to the user, it makes sense to just put the user document on the task they are assigned. But an update to a user now requires you to update the user both in the user collection and all tasks with that user in the tasks collection.
This can be achieved but does introduce some complexity, however the introduction of updates using aggregation pipelines…
2 votes -
Support for MongoDB Server on Ubuntu 21.04.
Per the MongoDB Server Supported Platforms Matrix support for Ubuntu 21.04 is not yet available.
We would like to see the currently supported MongoDB Server versions available on the Ubuntu 21.04 LTS distribution which was released on 22 April 20212 votes -
Provide a KRB5_KTNAME setParameter or other config setting
The Kerberos keytab file is specified in the KRB5_KTNAME environment variable.
Could a setParameter or other config file setting "krb5KtName" be provided to allow this to be set?
2 votes -
Ability to replicate the data within a cluster to another cluster
Two different scenarios. One scenario is to have a DR cluster. 2 independant clusters that are one way synced. As of right now, a custom CDC solution (custom code + Kafka) is needed to achieve this.
Another is because of latency and the requirement for data to be stored in 2 different data center, 2 indepentant mongoDB clusters that are two way synced. As of right now, a custom CDC solution (custom code + Kafka) is needed to achieve this.2 votes -
Record running queries at the time of a failover
I recently observed some failovers in a replica set that may have been related to long-running queries. However, since these queries happened only sporadically, it was hard to track them down. Since the queries didn't finish, they weren't present in the logs at the time of the crash.
It would be useful if it could be possible to somehow capture the long-running queries that were running at the time that something went wrong. I recognize that this is potentially impossible, since once something has gone wrong it can be difficult to do anything.
We ended up being able to diagnose…
2 votes -
Create and use db links in Mongodb
Allow Mongodb to access an external database for:
1.select identifiers on an external rdbms (ex: postgres, sqls, oracle, ...)
2.use these identifiers to perform aggregations in MongodbCurrently, it is necessary to use a third-party tool that connects to several data sources to perform these actions.
The idea is to be able to perform these "joins" only in Mongodb CLI.Regards,
Jerome2 votes -
Document known breaking change in JavaScript Engine
If a new version of MongoDB will include a new version of MozJS (ex https://jira.mongodb.org/browse/SERVER-29286) and this version will break any existing scripts it would be ideal if this was documented.
For example, with MongoDB 4.2 "value".contains() no longer worked in scripts and had to be converted to "value".includes()
2 votes
- Don't see your idea?