Je migre une base de données Mongo très simple (quelques 100 entrées) vers Azure Cosmos DB. Mon application est basée sur node-js, donc j'utilise mangouste comme mappeur. Avant que ce ne soit vraiment simple, définissez le schéma, la collection de requêtes, terminé.
Maintenant, lors de la configuration d'une collection dans Cosmos DB, on m'a posé des questions sur la clé de partition et la clé de partition. Le premier que je pouvais ignorer, mais le dernier était requis. En lisant rapidement sur ce sujet et en comprenant que c'était une sorte de partition (encore une fois, dont je n'ai pas besoin et que je veux), j'ai simplement choisi _id comme clé de partition.
Bien sûr, quelque chose ne fonctionne pas.
Bien que les requêtes de recherche fonctionnent très bien. La mise à jour ou l'insertion des enregistrements échoue, voici l'erreur:
MongoError: la requête dans la commande doit cibler une seule clé de fragment
Cosmos db (avec l'API mongo) m'a été annoncé comme un remplacement sans rendez-vous. Ce qui n'est clairement pas le cas car je n'ai jamais eu à me soucier de telles choses en mongo, en particulier pour une application/db à si petite échelle.
Alors, puis-je désactiver le partage en quelque sorte? Sinon, comment puis-je définir la clé de partition et ne pas m'inquiéter à ce sujet à l'avenir?
À votre santé
Vous pouvez créer une collection CosmosDB avec un stockage fixe maximum de 10 Go. Dans ce cas, la collection ne devra pas être fragmentée car le stockage n'est pas évolutif et vous ne recevrez pas d'erreurs de CosmosDB. Cependant, en raison du débit minimum de 400, vous pourriez avoir des coûts légèrement plus élevés.