Database
317 results found
-
I believe the future is for AI to assist the user in simple but sometimes frustrating tasks like connecting or finding the correct build
An Artificial Intelligence assistance would be very useful to the user for finding the correct configuration and helping set up connections. There are many deprecated components, especially if you are trying to integrate a IoT platform like Raspberry Pi. It would be great for the system to recognize what you are trying to do and guide you along the right path.
1 vote -
amazon linux 2023 (AL2023) support for ARM
Amazon Linux 2023 (AL2023) support for ARM (MongoDB and CloudManager)
1 vote -
Add SHA2, SHA3 and ECDSA functions to agg framework
It is very useful (and valuable security-wise) to be able to reverify hashes and signatures "on-engine" instead of dragging material out to a client app and running the algo there. The implementations are straightforward and everywhere now so it's not a huge lift for the backend. Example use:
aggregate([
{$match: whatever},
{$addFields: {
hashok: {$cond: [ {$eq: [ {$sha3: "path.to.struct"}, "path.to.stored.sha3"} ], 1, 0},
sigok: { $verify: { sig: "path.to.sig", pubkey: "path.to.pubkey", algo: "name of curve to use eg. SECP256k1}}
}
])
The digest function would operate on the raw BSON behind the scenes.1 vote -
Lock the document field (not the entire document)
Hi
according to this reference: https://www.mongodb.com/blog/post/how-to-select--for-update-inside-mongodb-transactionsWhen I lock a document with a field with a new ObjectID, the whole document is locked!
Idea :
Operations:
i have three fields : A , B , C
I locked fieldA
with new ObjectID in transactionT1
.
i locked fieldB
with new ObjectID in transactionT2
.Behaviors (high performance) :
- In transactionT2
: if fieldA
is updated,writeConflict
error occurs.
- In transactionT1
: if fieldB
is updated,writeConflict
error occurs.
- Outside of transactions: If fieldA
is updated, it waits for …1 vote -
Improve the mongo query language
Sometimes I find Mongo query language as not put very well together, sometimes it feels like a patch job. It would be nice, if you could make you query language easier to reason about. It would be awesome, if you could introduce fluent style api builder instead of building bson documents.
1 vote -
Add functionality to specify the readConcern level at db.collection.findOne()
Add functionality to specify the readConcern at db.collection.findOne(). At the version 5.0.14 it's not supported.
1 vote -
Combine reshardCollection+mongosynd idea to support a remote collection on a separate new cluster
Great for prod productivity and 99.999 SLA if mongo could support this,
for example,Given "mydb.mycoll" in current cluster being sharded with {zip:1} shard key
1/ New cluster: sh.shardCollection( "mydb.mycoll", {name:1, phone:1} )
2/ "Mongocopy" till mydb.mycoll in new and current cluster are synced.
Very much like how reshardCollection works now, but to a remote
mydb.mycoll on the new cluster, instead of the local coll
system.resharding.554c8995-2ec9-4bda-9401-a3ad475b9c8cThis is a combination of mongosync and reshardCollection in one.
Prod cluster is often very big and busy and requires no downtime with the
99.999 SLA (Service level agreement). Being able to reshardCollection
to…1 vote -
throttle sessions which use too much resources
We have different types of applications :
1. Writer - to load data into mongodb from different data sources
2. Reader - to read data and display to end user.Normally, there is strict SLA for reader , but no SLA (or less restricted) for writers. We want to make sure that writer will not impact reader in case when for some reason a lot of data arrived from external sources. So, we would like to slow down writers for the sake of readers.
Writers can saturate CPUs and IO, that's why we want an option to leave some room…
1 vote -
Add hash function (eg. md5) to aggregation pipeline
I would like to implement hash-based sharding in my own application on top of MongoDB. For that purpose, I would like to pull a stable pseudorandom subset of documents into each of my servers, and I would like to do so without enlarging the documents by adding additional fields, and without using JavaScript in the aggregation pipeline (for performance reasons).
The idea: add a hash function, such as md5, to aggregation pipelines. The function would accept an object/array containing the data to be hashed, and would return the hash, ideally as a number.
1 vote -
$currentDate option to only update if the document was modified
A common pattern in a data model is to have a field that denotes when the data was last modified. For this example, let this field be called "updated". I want to toggle a field on a document called "enabled", and if the value is modified I also want to update the "updated" field.
This behavior is possible right now via a comment shown in SERVER-42084, but ONLY if we include the entire document, which is not acceptable when you only want to modify a single field. This document could have other fields that are numeric and are updated atomically,…
1 vote -
Improve sorting performance
Sorting always ends up doing a collection scan when the selected index for the find/match does meet the sort requirement. The sort effectively makes the performance worse by 15-25 times for the "matched" dataset which runs into 10s of thousands (not millions) of documents
1 vote -
Build MongoDB with PGO
I would like to see support for PGO (and even LLVM Bolt) in the upstream. Would be awesome if MongoDB will distribute PGO-optimized binaries, so the users will be able to see an additional performance boost "for free". At least describe to the users somewhere in the documentation, how they could achieve a boost for their own scenarios with PGO.
1 vote -
UTF 16 and UTF 32 support
Currently MongoDB only support UTF 8 strings but it will be great if there is a configuration to change UTF 16 or UTF 32.
1 vote -
Need an array query operator like elem match which matches all array nested object instead of at least one array element
as per documentation elem match query matches at least one match in array of nested object,
same we need a array query operator which returns the whole document only if elem match like criteria matches all elements in array of nested objects.
I have gone through usecase of $all with $elemMatch but it behaviour different it is like $and with $elemMatch instead excepted behaviour i am asking or excepting mentioned earlier.
https://www.mongodb.com/docs/manual/reference/operator/query/all/#use--all-with--elemmatch
https://www.mongodb.com/docs/manual/reference/operator/query/elemMatch/1 vote -
Please upgrade third_party/mozjs to esr 102
for new cpu isa (loongarch64/loong64) support , Thanks
1 vote -
Support $documents on shards
The new aggregation operator $documents cannot be used together with $merge in a sharded cluster, you get an error:
db.aggregate([ { $documents: [ { _id: ObjectId("6616b08a610fab3e84d2d4ee"), a: 'foo', shardKey: 1 }, ] }, { $merge: { into: { db: 'myDB', coll: 'sharded_Collection' } } } ])
raises
$documents must run on mongoS, but cannot :: caused by :: $merge must run on a shard
Having this new function available in every environment would we great.
1 vote -
Raise an error when "majority" writes not possible
This topic is related to https://www.mongodb.com/docs/v6.0/tutorial/mitigate-psa-performance-issues/ in a PSA ReplicaSet configuration.
When you try to execute a command with writeConcern
{w: "majority"}
in a three-member Primary-Secondary-Arbiter configuration where one data bearing node is not available, then the command hangs forever - unless the missing member becomes available again or you reconfigure the ReplicaSet to{votes: 0, priority: 0}
on the non-available member.Instead of waiting forever, MongoDB should rollback the change and raise an error. This behavior should apply mainly for operations where
{w: "majority"}
is set implicitly and cannot be changed by the user, for example at "renameCollection" issued…1 vote -
BSON::Proxy Proxy content from/to another collection
I would like a mongodb data type, called
BSON::Proxy # not indexable or searchable
Which would hold the value of another collection & id.
IE:
BSON::Proxy({database: "this_one", collection: "blobs", _id: "123"})
This would allow my code to request a field that would be used for reading ONLY IF REQUESTED in the projection.
Example record:
{
id: "abc",
username: "test user",
blob: BSON::Proxy({database: "thisone", collection: "blobs", _id: "123"})
age: 50
}db.collection.find(query, projection, options)
db.users.find({_id: "abc"}) # returns all fields except blob.
db.users.find({_d: "abc", { _id: true, username: true, blob: true, age: true }}) # returns all fields including blob.
…
1 vote -
Make redundant createView() a no-op
If I call createView() with params that match an existing view (in name and all other attributes), it returns an error. It'd be more convenient if the call simply succeeded without doing any work. The behavior I propose is analogous to the way that createIndex() behaves. With the current behavior my only choices are to (1) unconditionally drop and recreate the view, or (2) read the current view definition and see whether it matches the definition I want. The first choice is unacceptable because for a period of time (albeit a short one) the view won't exist and queries that…
1 vote -
$addToSetIfNotExists or javascript code as array operator
This would allow for unique if not last entry into arrays.
Preventing:
['one', 'one', 'two', 'three']
But allowing:
['one', 'two', 'three', 'one']
Or perhaps (to run js code on the array at the db):
`.update({}, {$js: {'array_field': 'var last = ""; for (var key in array) {if (array[key] === last) {array.splice(key);}}'});
1 vote
- Don't see your idea?