[TOC]
说明:本文来自于https://www.bilibili.com/video/av36394924/?p=2视频讲解
官方文档:https://docs.mongodb.com/ 4.2版本
insert
通用
规范:
db.collection.insert(
<document or array of documents>,
{
writeConcern: <document>,
ordered: <boolean>
}
)
ordered
如果true
,在数组中执行文档的有序插入,并且如果其中一个文档发生错误,MongoDB将返回而不处理数组中的其余文档。如果false
执行无序插入,并且如果其中一个文档发生错误,请继续处理阵列中的其余文档。默认为true
insertOne
规范:
db.collection.insertOne(
<document>,
{
writeConcern: <document>
}
)
db.inventory.insertOne(
{ item: "canvas", qty: 100, size: { h: 28, w: 35.5, uom: "cm" } }
)
insertMany
规范:
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
db.inventory.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])
find
通用
{ field1: <value>, field2: <value> ... }
findOne
规范:
{ field1: <boolean>, field2: <boolean> ... }
db.getCollection("inventory").findOne({},{qty:1,tags:1})
其中 1 表示,这个字段会输出出来
其中 0 表示, 这个字段不会输出出来
findAndModify
规范:
db.collection.findAndModify({
query: <document>,
sort: <document>,
remove: <boolean>,
update: <document or aggregation pipeline>, // Changed in MongoDB 4.2
new: <boolean>,
fields: <document>,
upsert: <boolean>,
bypassDocumentValidation: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ]
});
db.getCollection("inventory").findAndModify({
query: { qty: 15 },
sort: { qty: 1 },
update: { $inc: { qty: 100 } },
upsert: true
})
findOneAndDelete
规范:
db.collection.findOneAndDelete(
<filter>,
{
projection: <document>, #可选的。要返回的字段子集。
sort: <document>,
maxTimeMS: <number>, #指定操作必须在其中完成的时间限制(以毫秒为单位)
collation: <document> #指定 要用于操作的排序规则
}
)
db.getCollection("inventory").findOneAndDelete(
{ "item.name" : "ab" }
)
findOneAndReplace()
规范:
db.collection.findOneAndReplace(
<filter>, #{ field1 : < boolean >, field2 : < boolean> ... }
<replacement>, # 替换文件,不能包含 更新运算符。
{
projection: <document>,
sort: <document>,
maxTimeMS: <number>,
upsert: <boolean>,
returnNewDocument: <boolean>,
collation: <document> #指定 要用于操作的排序规则
}
)
db.scores.findOneAndReplace(
{ "score" : { $lt : 20000 } },
{ "team" : "Observant Badgers", "score" : 20000 }
)
findOneAndUpdate
规范:
db.collection.findOneAndUpdate(
<filter>,
<update document or aggregation pipeline>, // Changed in MongoDB 4.2
{
projection: <document>,
sort: <document>,
maxTimeMS: <number>,
upsert: <boolean>,
returnNewDocument: <boolean>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ]
}
)
db.grades.findOneAndUpdate(
{ "name" : "R. Stiles" },
{ $inc: { "points" : 5 } }
)
delete
deleteOne
规范:
db.collection.deleteOne(
<filter>,
{
writeConcern: <document>,
collation: <document>
}
)
db.orders.deleteOne( { "expiryts" : { $lt: ISODate("2015-11-01T12:40:15Z") } } );
deleteMany
规范:
db.collection.deleteMany(
<filter>,
{
writeConcern: <document>,
collation: <document>
}
)
db.orders.deleteMany( { "client" : "Crude Traders Inc." } );
remove
规范:
db.collection.remove(
<query>,
<justOne> #要将删除限制为仅一个文档,请设置为true。省略使用默认值false并删除符合删除条件的所有文档。
)
db.products.remove( { qty: { $gt: 20 } } )
update
规范:
db.collection.update(
<query>,
<update>,
{
#如果设置为true,则在没有文档与查询条件匹配时创建新文档。默认值为false,未找到匹配项时不插入新文档。
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ],
hint: <document|string> // Available starting in MongoDB 4.2
}
)
db.people.update(
{ name: "Andy" },
{
name: "Andy",
rating: 1,
score: 1
},
{ upsert: true }
)
注意:默认更新单个文档。包括选项multi:true 以更新符合查询条件的所有文档。
updateOne
规范:
db.collection.updateOne(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ]
}
)
db.restaurant.updateOne(
{ "name" : "Central Perk Cafe" },
{ $set: { "violations" : 3 } }
);
updateMany
规范:
db.collection.updateMany(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ]
}
)
db.restaurant.updateMany(
{ violations: { $gt: 4 } },
{ $set: { "Review" : true } }
);
批量操作
文档提供了很多的批量的方法操作。
官方地址:https://docs.mongodb.com/manual/reference/method/js-bulk/
var bulk = db.items.initializeUnorderedBulkOp();
#items`并添加一系列插入操作以添加多个文档
bulk.insert( { item: "abc123", defaultQty: 100, status: "A", points: 100 } );
bulk.insert( { item: "ijk123", defaultQty: 200, status: "A", points: 200 } );
bulk.insert( { item: "mop123", defaultQty: 0, status: "P", points: 0 } );
bulk.execute();
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付