Est-ce que GridFS a un upsert? Par exemple, si je veux enregistrer une image avec un _id spécifié, et qu'une autre avec ce même _id existe déjà, je veux l'écraser (mettre à jour). Sinon, insérez-le.GridFS dans Ruby: comment augmenter?
4
A
Répondre
4
La spécification n'est pas vraiment conçue pour supporter les upserts, puisque vous modifiez techniquement plus d'un document, et les conditions de course difficiles peuvent certainement survenir. Nous recommandons donc ce que Matt a fait, c'est-à-dire supprimer d'abord et ensuite mettre.
3
J'ai regardé le code source de pierres précieuses rubis mongo et trouvé ceci:
# Store a file in the file store. This method is designed only for writing new files;
# if you need to update a given file, first delete it using #Grid#delete.
# ...
def put(data, opts={})
Alors, je l'ai fait dans le code:
grid.delete(id) # if exists
grid.put(tmp_file.read, :_id => id, :content_type => file_type)
Voir le script sinatra travaillant ici: http://github.com/acani/acani-sinatra/blob/master/acani.rb#L97
Questions connexes
- 1. Meilleur pilote GridFS C#?
- 2. Créer des miniatures avec GridFS + MongoDB + PHP
- 3. MongoDB GridFS l'efficacité de la requête one-to-one en Ruby
- 4. Système de stockage personnalisé pour GridFS (MongoDB)?
- 5. pymongo (python + mongodb) drop collection/gridfs?
- 6. Comment augmenter la mémoire java dans openfire
- 7. comment augmenter les threads dans JVM
- 8. Comment augmenter le pointeur mysql_fetch_array?
- 9. OutOfMemoryError quoi augmenter et comment?
- 10. MongoDB GridFS pour le stockage de fichiers HA
- 11. Augmenter et réduire QTreeWidgetItem dans un QTreeWidget?
- 12. Pour augmenter est pressé dans Android
- 13. Comment augmenter dynamiquement la longueur de l'URL?
- 14. DOMContentLoaded/load (événement), comment augmenter la vitesse.
- 15. Comment augmenter les étiquettes à l'exécution
- 16. comment augmenter la vitesse de mon exécution
- 17. Comment faire pour augmenter une ValueError?
- 18. comment augmenter Apache 2 uri longueur limite
- 19. Service WCF, comment augmenter le délai d'expiration?
- 20. Comment augmenter l'allocation de mémoire au programme
- 21. Débogueur CLR, ASP.NET - comment augmenter le délai?
- 22. Comment augmenter le modificateur d'accès d'une propriété
- 23. comment augmenter freebase API résultat limite
- 24. Augmenter l'espace permgen
- 25. Augmenter la vitesse de requête dans PostgreSQL
- 26. Comment augmenter le nombre maximal de connexions simultanées dans Apache?
- 27. Comment augmenter la largeur d'une colonne dans un tableau HTML?
- 28. Comment augmenter automatiquement le volume du micro dans le flash?
- 29. Comment faire pour augmenter un compteur dans SQLAlchemy
- 30. Comment augmenter l'espacement entre les paragraphes dans Crystal Reports PDF