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

Existe-t-il une limite de longueur aux valeurs de champ dans les requêtes mongo ?

La limite que vous rencontrez est la taille maximale du tampon de ligne dans le mongo shell, qui est 4096 octets comme à MongoDB 2.2.1. Si vous essayez de coller votre exemple dans le mongo shell, vous devriez remarquer que vous ne pouvez pas ajouter de caractères au-delà de la limite de ligne.

Si vous exécutez cette requête à partir d'un pilote de langage vous n'aurez pas ce problème.

Vous pouvez également contourner ce problème dans le mongo shell en chargeant la requête depuis un fichier JavaScript spécifié sur la ligne de commande :

 mongo longname.js

Soit en créant une longue chaîne dans le mongo shell par programmation :

// Longname will be 5000 characters
var longname = '';
for (i = 0; i < 200; i++) {
    longname += 'Abcdefghijklmnopqrstuvwx ';
}

db.foo.insert({
  _id: ObjectId("508836afea5cea2ccec11a0d"),
  created_at: 1348657869.204,
  name: longname
});

printjson(db.foo.findOne({name: longname}))