Gérer un document dans Azure Cosmos DB for MongoDB à l’aide de JavaScript
S’APPLIQUE À : MongoDB
Gérez vos documents MongoDB avec la possibilité d’insérer, de mettre à jour et de supprimer des documents.
Notes
Les exemples d’extraits de code sont disponibles sur GitHub sous la forme d’un projet JavaScript.
Documentation de référence de l’API pour MongoDB | Package MongoDB (npm)
Insérer un document
Insérez un document, défini avec un schéma JSON, dans votre collection.
// get database client for database
// if database or collection doesn't exist, it is created
// when the doc is inserted
// insert doc
const doc = { name: `product-${random}` };
const insertOneResult = await client.db("adventureworks").collection("products").insertOne(doc);
console.log(`Insert 1 - ${JSON.stringify(insertOneResult)}`);
// insert docs
const docs = [
{ name: `product-${random}` },
{ name: `product-${random}` }
];
const insertManyResult = await client.db("adventureworks").collection("products").insertMany(docs);
console.log(`Insert many ${JSON.stringify(insertManyResult)}`);
L’extrait de code précédent affiche l’exemple de sortie de console suivant :
Insert 1 - {"acknowledged":true,"insertedId":"62b2394be4042705f00fd790"}
Insert many {"acknowledged":true,"insertedCount":2,"insertedIds":{"0":"62b2394be4042705f00fd791","1":"62b2394be4042705f00fd792"}}
done
ID du document
Si vous ne fournissez pas d’ID _id
pour votre document, un est créé pour vous en tant qu’objet BSON. La valeur de l’ID fourni est accessible avec la méthode ObjectId.
Utilisez l’ID pour interroger des documents :
const query = { _id: ObjectId("62b1f43a9446918500c875c5")};
Mettre à jour un document
Pour mettre à jour un document, spécifiez la requête utilisée pour trouver le document ainsi qu’un ensemble de propriétés du document qui doivent être mises à jour. Vous pouvez choisir de faire un upsert du document, qui insère le document s’il n’existe pas déjà.
const product = {
category: "gear-surf-surfboards",
name: "Yamba Surfboard 3",
quantity: 15,
sale: true
};
const query = { name: product.name};
const update = { $set: product };
const options = {upsert: true, new: true};
const upsertResult = await client.db("adventureworks").collection('products').updateOne(query, update, options);
console.log(`Upsert result:\t\n${Object.keys(upsertResult).map(key => `\t${key}: ${upsertResult[key]}\n`)}`);
L’extrait de code précédent affiche l’exemple de sortie de console suivant pour une insertion :
Upsert result:
acknowledged: true
, modifiedCount: 0
, upsertedId: 62b1f492ff69395b30a03169
, upsertedCount: 1
, matchedCount: 0
done
L’extrait de code précédent affiche l’exemple de sortie de console suivant pour une mise à jour :
Upsert result:
acknowledged: true
, modifiedCount: 1
, upsertedId: null
, upsertedCount: 0
, matchedCount: 1
done
Mises à jour en bloc d’une collection
Vous pouvez effectuer plusieurs opérations à la fois avec l’opération bulkWrite. Apprenez-en plus sur l’optimisation des écritures en bloc pour Azure Cosmos DB.
Les opérations en bloc suivantes sont disponibles :
MongoClient.Db.Collection.bulkWrite
insertOne
updateOne
updateMany
deleteOne
deleteMany
const doc1 = {
category: "gear-surf-surfboards",
name: "Yamba Surfboard 3",
quantity: 15,
sale: true
};
const doc2={
category: "gear-surf-surfboards",
name: "Yamba Surfboard 7",
quantity: 5,
sale: true
};
// update docs with new property/value
const addNewProperty = {
filter: { "category": "gear-surf-surfboards" },
update: { $set: { discontinued: true } },
upsert: true,
};
// bulkWrite only supports insertOne, updateOne, updateMany, deleteOne, deleteMany
const upsertResult = await client.db("adventureworks").collection('products').bulkWrite([
{ insertOne: {document: doc1}},
{ insertOne: {document: doc2}},
{ updateMany: addNewProperty},
]);
console.log(`${JSON.stringify(upsertResult)}`);
L’extrait de code précédent affiche l’exemple de sortie de console suivant :
{
"ok":1,
"writeErrors":[],
"writeConcernErrors":[],
"insertedIds":[
{"index":0,"_id":"62b23a371a09ed6441e5ee30"},
{"index":1,"_id":"62b23a371a09ed6441e5ee31"}],
"nInserted":2,
"nUpserted":0,
"nMatched":10,
"nModified":10,
"nRemoved":0,
"upserted":[]
}
done
Supprimer un document
Pour supprimer des documents, utilisez une requête pour définir la façon dont les documents sont trouvés.
const product = {
_id: ObjectId("62b1f43a9446918500c875c5"),
category: "gear-surf-surfboards",
name: "Yamba Surfboard 3",
quantity: 15,
sale: true
};
const query = { name: product.name};
// delete 1 with query for unique document
const delete1Result = await client.db("adventureworks").collection('products').deleteOne(query);
console.log(`Delete 1 result:\t\n${Object.keys(delete1Result).map(key => `\t${key}: ${delete1Result[key]}\n`)}`);
// delete all with empty query {}
const deleteAllResult = await client.db("adventureworks").collection('products').deleteMany({});
console.log(`Delete all result:\t\n${Object.keys(deleteAllResult).map(key => `\t${key}: ${deleteAllResult[key]}\n`)}`);
L’extrait de code précédent affiche l’exemple de sortie de console suivant :
Delete 1 result:
acknowledged: true
, deletedCount: 1
Delete all result:
acknowledged: true
, deletedCount: 27
done
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour