J'ai créé une collection 'sequence'. Il a des champs 'nom' et 'compteur'. Le champ 'name' est mis à 'Tag' et le champ 'counter' est mis à 0. Voici le code dans une méthode qui retourne la valeur suivante du champ 'counter'.Création/Mise à jour de séquences - MongoDB
final Sequence tagSequence = mongoTemplate.findAndModify(
new Query(Criteria.where("name").is("Tag")),
new Update().inc("counter", 1),
new FindAndModifyOptions().returnNew(true), Sequence.class);
Cependant, ce morceau de code ne fonctionne pas. Toutes les entrées?
J'ai trouvé une implémentation pour cela ici, http://dev.bubblemix.net/blog/2011/04/auto-increment-for-mongodb-with-the-java-driver/, cependant, je voulais savoir ce qui ne va pas avec ce morceau de code.
Pouvez-vous augmenter le niveau de journal sur le serveur mongod (par exemple mongod -vvv) et vérifier ce qui est réellement envoyé au serveur lorsque ce code est exécuté? – jyemin
J'ai exécuté le code du pilote java pur auquel vous avez lié et le voir dans les journaux exécutant mongod -v: Mer Jun 20 19:41:33 [conn3] exécuter la commande test. $ Cmd {findandmodify: "seq", query : {_id: "seq1"}, mise à jour: {$ inc: {seq: 1}}, nouvelle: true, upsert: true} Wed Jun 20 19:41:33 [conn3] requête test.seq requête: {_id : "seq1"} ntoreturn: 1 idhack: 1 reslen: 48 0ms Mer Jun 20 19:41:33 [conn3] update test.seq requête: {_id: "seq1"} mise à jour: {$ inc: {seq: 1 }} idhack: 1 0ms – jyemin
Je n'ai pas vraiment compris de ces journaux ce qui se passe exactement. – devang