Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
BERLAKU UNTUK: MongoDB
Kelola dokumen MongoDB Anda dengan kemampuan untuk menyisipkan, memperbarui, dan menghapus dokumen.
Catatan
Contoh cuplikan kode tersedia di GitHub sebagai proyek JavaScript.
API untuk dokumentasi | referensi MongoDB Paket MongoDB (npm)
Menyisipkan dokumen
Menyisipkan dokumen, yang ditentukan dengan skema JSON, ke dalam koleksi Anda.
// 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)}`);
Cuplikan kode sebelumnya menampilkan contoh output konsol berikut:
Insert 1 - {"acknowledged":true,"insertedId":"62b2394be4042705f00fd790"}
Insert many {"acknowledged":true,"insertedCount":2,"insertedIds":{"0":"62b2394be4042705f00fd791","1":"62b2394be4042705f00fd792"}}
done
ID Dokumen
Jika Anda tidak memberikan ID, _id
, untuk dokumen Anda, ID dibuat untuk Anda sebagai objek BSON. Nilai ID yang disediakan diakses dengan metode ObjectId.
Gunakan ID untuk mengkueri dokumen:
const query = { _id: ObjectId("62b1f43a9446918500c875c5")};
Memperbarui dokumen
Untuk memperbarui dokumen, tentukan kueri yang digunakan untuk menemukan dokumen bersama dengan set properti dokumen yang harus diperbarui. Anda dapat memilih untuk menerapkan upsert pada dokumen, yang menyisipkan dokumen jika dokumen tersebut belum ada.
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`)}`
);
Cuplikan kode sebelumnya menampilkan contoh output konsol berikut untuk penyisipan:
Upsert result:
acknowledged: true
, modifiedCount: 0
, upsertedId: 62b1f492ff69395b30a03169
, upsertedCount: 1
, matchedCount: 0
done
Cuplikan kode sebelumnya menampilkan contoh output konsol berikut untuk pembaruan:
Upsert result:
acknowledged: true
, modifiedCount: 1
, upsertedId: null
, upsertedCount: 0
, matchedCount: 1
done
Pembaruan massal untuk koleksi
Anda dapat melakukan beberapa operasi sekaligus dengan operasi bulkWrite. Pelajari selengkapnya tentang cara mengoptimalkan penulisan massal untuk Azure Cosmos DB.
Operasi massal berikut tersedia:
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)}`);
Cuplikan kode sebelumnya menampilkan contoh output konsol berikut:
{
"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
Hapus dokumen
Untuk menghapus dokumen, gunakan kueri untuk menentukan bagaimana dokumen ditemukan.
const product = {
_id: new 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`)}`
);
Cuplikan kode sebelumnya menampilkan contoh output konsol berikut:
Delete 1 result:
acknowledged: true
, deletedCount: 1
Delete all result:
acknowledged: true
, deletedCount: 27
done