Database
320 results found
-
Providing connection details with username for real time connection monitoring.
Currently, mongd.log provides connection details like remote IP, source port with authentication information but doesn't provide the connection is in active state or not.
serverStatus() only provides number of current and active connections.Example:
10.0.0.100:12345 - username active
10.0.0.101:12346 - username idle2 votes -
Query comment or metadata in change stream event
Our application is using change stream events to publish changes as kafka events for our customers. Sometimes we are in need to decide if an event should be send by kafka or not. Right at the moment the only way would be to decide based on additional fields on our document.
It would be nice if there is an opportunity to include query comments to change stream events or some kind of meta data to get some info about the origin of the operation. This would be useful, to decide without any need to add additional fields to our data…
2 votes -
Export Backup Snapshots to GCP Bucket
As Atlas user, i want to Export Backup Snapshots to a GCP bucket because i don't have an AWS subscription.
2 votes -
Make $merge support DELETE operation
Currently, the
$merge
only supports insert/update/upsert/merge behaviour. It would be great to support delete behaviour. A common use case would be in-place document deduplication/clean-up in a collection.2 votes -
Change Timeseries Bucket Memory Limit
Currently, there's no way to set a memory threshold for bucket allocation in MongoDB's time series collections. As the bucket size increases and more collections are opened day after day, a limiting mechanism triggers for open buckets, leading to cache pressure and the premature closing of buckets under high load. It would be beneficial for users to have the ability to set a memory threshold for the timeseries bucket memory limit ( I guess limit is around 3GB). It enabling us to prevent early bucket closure in production environments. Alternatively, providing the option to manually close buckets could help manage…
2 votes -
Include or flag nodes seen more than once / duplicates when traversing with $graphLookup
When traversing a graph with $graphLookup, we suppress duplicates (in cases of cycles). It would be useful to have an option to include a flag indicating a node that caused the traversal to stop due to duplication.
2 votes -
Improve Changestream metadata by including userId(who), action/intent (event name).
This can be done by including meta data in the options for C(R)UD operations!
Something like:User.updateOne({ _id }, { $set: { name: "newName" } }, { $meta: { userId: _id, action: "nameUpdated" })
This is super useful because now changestream can be used to create event store or audit logs, out of the box. I just have to store all the changestream events from the relevant collections. This also makes event driven architecture in micro services super useful. Developers can use this to publish events directly to a message broker such as kafka, where action would be equivalent to…
2 votes -
I just wanted to say Good job!!!
Appreciation
2 votes -
Exclude PDB files from installation
mongod.pdb is nearly 1.0GB, mongos.pdb - 0.5GB
Since these fils are not necessary for the server to function properly, they should be optional, e.g. provide a checkbox to exclude them during installation.
2 votes -
define the random seed manually, for $rand and $sample
It will be great if an additional paramater to define the seed for $rand and $sample could be use.
2 votes -
Tool for score data model
It would be great to have a tool which can scores a data model from a specific database. I mean, I could allows this tool to scan a database model and score this data model based on best practices, patterns and anti patterns. It could also generates a list of problems and suggestions for improvement.
This tool could be used on CI pipelines near to the unit tests and the main goal is to avoid release new features using a bad data model.
2 votes -
Flatten arrays in group stage
Have group operators to flatten document arrays into a single one with or without repeated elements.
So ->
doc1 = {arr: [1,2,3,4], gr: "group"}, doc2 = {arr: [5, 6, 7, 8], gr: "group"}
{$group: {id: "$gr", arrays: {$***: "$arr"} } }
=>
{id: "gr", arrays: [1, 2, 3, 4, 5, 6, 7, 8]}2 votes -
Cascading delete for DBRefs
Since transactions have been added in 2018, which work across collections (https://www.mongodb.com/docs/manual/core/transactions/) and across shards (https://www.mongodb.com/docs/manual/core/transactions-sharded-clusters/), shouldn't cascading deletes be possible now? I only worked with sql transactions in the past, but my intuition would be that it should be fairly easy to do this in a client:
- start a transaction
- fetch document
- look for dbref fields
- fetch those docs
- continue at 2 until all docs have been found, stopping at branches when a doc has already been fetched
- go back in reverse and delete all of them
- commit transaction
If this is possible to do…
2 votes -
geo
It would be nice to get the length of an LineString of a geo-json object or the possibility to write an aggregation to calculate it.
2 votes -
$dateDiff operator should be useful to calculate age
In the documentation it says: " For example, two dates that are 18 months apart would return 1 year difference instead of 1.5 years.". But if startDate is 2021-08-01 and endDate is 2023-02-01, the result is 2 years difference. I think it should be good if this operator could be used to calculate the age.
2 votes -
Make consistent use of system-wide CA certificate store
Please make the use of system-wide CA certificate store the same in all tool/commands.
If
tls.CAFile
is not specified inmongod/mongos
configuration then the system-wide CA certificate store will be used.If
--sslCAFile
is not specified inmongoimport/mongoexport
tool then the system-wide CA certificate store will be used - but this behavior is not documented.For
mongosh
you have to specify option--tlsUseSystemCA
is you like to use the system-wide CA certificate store. I did not check how it is/was working in legacymongo
shell.For command
Mongo()
(https://www.mongodb.com/docs/v6.0/reference/method/Mongo/), I was not able to find out, how to…
2 votes -
Clustered Collection TTL on _id should support ObjectId.
Clustered Collections have the ability to expire on the _id field, this would be really helpful if it could use the timestamp portion of the ObjectId.
2 votes -
Support Two Array Fields in Compound Indexes
Hi,
I've come across a lot of use cases where the business logic has demanded unique constraints on 1-2 fields that have been modeled as arrays on documents. The cases that only contain a single array field is already taken care of using unique indexes in MongoDB, however the cases with 2 array fields have required application level constraints since the database only supports a single array field in compound indexes. While multiple arrays in a single index would massively increase the size of the indexes, it would be very helpful if it would still be possible. If there are…
2 votes -
Query Planner needs a timeOut set as a Database parameter.
Query Planner needs a timeOut set as a Database parameter.
We see App queries timing out on Query planner taking >1 sec. Whilst this can be avoided by setting maxTimeMS at client end - this is more of a setting for the overall query and not just the query planner - Also, this comes at the risk of closing/timing out the actual query (cursor) which is not our need.
We only want the query planner itself to have a specific - set/customisable timeout and the query to keep running selecting one/any if the plans run thus far without timing out…
2 votes -
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
- Don't see your idea?