2011-06-17 3 views
3

Je voudrais insérer un Guid en utilisant l'outil mongoVue, comment puis-je le faire?MongoVue et Guid

Pour expliquer le contexte, j'avais l'habitude de copier le json de ma collection (grâce à l'onglet Text View) et de le coller dans mon fichier txt au lieu d'utiliser mongodump. Mais quand je crée une nouvelle collection et que je la colore à partir de la copie précédente, mon type binaire guid est maintenant apparu comme un "" Id d'objet ", alors le problème est: je ne peux pas mapper l'identifiant de l'objet mon champ de Guid. C'est pourquoi je voudrais savoir s'il est possible d'insérer un guid dans MongoVue.

Merci les gars. John

Répondre

2

Vous pouvez utiliser la notation suivante pour entrer dans GUIDs MongoVUE:

{ 
guid_field: new Guid("3bed978a-dc87-4fa4-8a1a-f0679387fa7e") 
} 

Pour insérer une nouvelle Guid (Guid.NewGuid()), vous pouvez entrer:

{ 
guid_field: new Guid() 
} 

Tous sont guids converti en valeurs binaires de type 3.

+0

merci beaucoup Sir Ishaan. – Gui

+0

J'ai cliqué avec le bouton droit de la souris et appuyé sur la touche d'insertion et utilisé le type json et mis dans le format que vous avez montré dans la zone de texte, mais j'ai l'erreur: "Erreur de saisie de données - Veuillez valider votre valeur".Les détails disent: Erreur de saisie de données - Veuillez valider votre valeur Le lecteur JSON s'attendait à un nom de type mais trouvé 'Guid'. Type: System.IO.FileFormatException Des idées? –

+0

Notez que depuis MongoVUE 1.4.2 et plus récent, la syntaxe a changé: 'Guid() est obsolète. Au lieu de cela, utilisez "CSGUID ('...)" pour analyser les GUID .NET. de [changelog] (http://www.mongovue.com/downloads/) –

0

Je ne sais pas, il peut répondre à votre question, mais ce poste peut aider: http://www.mongovue.com/2010/09/13/using-objectids/

+0

merci pour votre réponse. Leur site Web parlant de l'identification de l'objet n'aide pas beaucoup. Je suppose qu'il n'y a malheureusement aucune possibilité d'insérer un document avec un Guid – Gui

0

Lorsque j'insère une instance de la classe suivante:

public class C { 
    public Guid Id; 
    public int X; 
} 

Il ressemble à ceci dans MongoVUE texte Voir :

/* 0 */ 
{ 
    "_id": { 
    "$binary": "q4TTjt8k4UyaJI6FwuZ1EQ==", 
    "$type": "03" 
    }, 
    "X": 1 
} 

Lorsque le GUID a été représenté en tant que valeur binaire BSON du sous-type 3, qui n'est PAS un ObjectId. Pour insérer un GUID dans MongoVUE, vous devez créer une valeur binaire BSON du sous-type 3. La partie difficile détermine la valeur Base64 à utiliser.

En outre, il existe un problème avec le stockage des UUID en général dans MongoDB. Les trois pilotes (C#, Java et Python) qui supportent actuellement les UUID ont utilisé dans le passé différents ordres d'octets pour la représentation binaire de l'UUID, ce qui rend la vie très difficile. Les futures versions des pilotes utiliseront un nouveau sous-type binaire 4 pour les UUID et seront toutes normalisées sur l'ordre officiel des octets du réseau UUID (les 16 octets sont stockés dans le même ordre que dans la représentation sous forme de chaîne de l'UUID).). La version actuelle du pilote C# (la version 1.1 vient de sortir) offre un support expérimental pour gérer différentes représentations GUID (voir l'énumération GuidRepresentation et où elle est utilisée).

+0

Alors, que recommandez-vous d'utiliser à la place de Guid? – Gui

+1

J'ai expérimenté un peu plus avec MongoVUE et j'ai été capable de reproduire le problème. Lors de l'insertion d'un document dans lequel _id a une valeur de sous-type binaire 3, _id est remplacé par un ObjectId par MongoVUE. J'ai envoyé un courriel à l'auteur de MongoVUE pour poser des questions à ce sujet. Si vous avez le choix, le chemin de moindre résistance serait d'utiliser ObjectId au lieu de Guid. Nous avons cependant l'intention de soutenir pleinement Guids. –