2012-07-14 4 views
0

Voici un lien vers une entrée dans la documentation MongoDB qui décrit comment faire des numéros séquencés: http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-SequenceNumbersMongoDB, numéros séquencés et le C# pilote

Ma question est quelle est la meilleure façon de mettre en œuvre cette solution dans le C# chauffeur. Vous pouvez le faire comme une opération en deux étapes où vous allez d'abord à la collection de compteurs et ensuite mis à jour votre collection principale. Je suis curieux de savoir comment vous le feriez en une étape comme la documentation l'a avec le pilote C#?

MISE À JOUR:

2 Step aurait pu être le bon terme à utiliser. Il me semble qu'ils ont la fonction JavaScript stockée, puis il suffit d'appeler la fonction JavaScript de l'insertion. C'est ce que je voulais dire par 1 étape, comment appelez-vous la fonction JavaScript dans l'insertion?

Répondre

1

La documentation de ce lien n'est certainement pas une opération en 1 étape. Il y a un appel de méthode dans chaque instruction d'insertion pour assigner le champ _id. Cela frappe la base de données deux fois pour chaque insertion.

Si vous vouliez simplifier la tâche et que vous utilisiez des POCO, vous pourriez implémenter un IIdGenerator personnalisé tel que documenté ici: http://www.mongodb.org/display/DOCS/CSharp+Driver+Serialization+Tutorial. Ce sera toujours deux étapes, mais cela vous serait caché (sans doute pas nécessairement une bonne chose).

+0

Je viens de mettre à jour la question avec une description plus, je pense que je posais la mauvaise question – zgirod

+0

Oui, vous ne pouvez pas appeler une fonction javascript stocké sur l'insertion. La fonction javascript qu'ils appellent n'est pas stockée. Cela peut sembler comme ça parce que l'exemple est en javascript. Tout comme un FYI: ObjectId sont strictement en augmentation au fil du temps. Quelle est votre raison d'avoir besoin d'une séquence entière? –

+0

Pas besoin pur pour le séquençage des entiers, j'essaie juste de comprendre le fonctionnement interne de mongodb et le pilote .net un peu mieux. – zgirod

Questions connexes