MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

comment gérer le champ _id lors de l'utilisation de POCO avec le pilote mongodb c#

Lorsque vous insérez un objet, s'il n'a pas de _id puis le pilote en ajoute un et le définit sur une valeur MongoDB ObjectId de 12 octets.

Il vous suffit d'ajouter un Id propriété à votre POCO, qui sera désérialisé à partir de _id :

public class Thingy
{
     public ObjectId Id { get; set; }
}

Ou, si vous souhaitez déléguer une autre propriété à mapper sur _id alors vous pouvez le décorer avec le BsonIdAttribute , comme ceci :

[BsonId]
public ObjectId MyKey { get; set; }   

Le _id le champ ne doit pas nécessairement être un ObjectId MongoDB , vous pouvez le définir sur n'importe quelle valeur de n'importe quel type de données (à l'exception d'un tableau), il doit juste être unique dans la collection.