@songying
2018-09-19T11:26:24.000000Z
字数 2796
阅读 1307
mongodb
在 MongoDB 中,你不需要创建集合。当你向一个collection中插入文档时,如果 collection不存在,MongoDB 会自动创建 该collection。
参考: https://docs.mongodb.com/manual/reference/method/db.collection.insertOne/#db.collection.insertOne
- 功能: 插入一个document
- 返回值: 一个document包含: insertedId(被插入文档的_id 值) 与 acknowledged(boolean类型, 是否启用writeConcern参数, 启用:真,不启用: 假)
- 异常: a writeError or writeConcernError exception.
db.collection.insertOne(
<document>,
{
writeConcern: <document>
}
)
- document: document类型, 表示要插入的document
- writeConcern: 可选,document类型
- 功能: 插入多个文档
- 返回值: An array of _id 与 A boolean acknowledged
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
- ordered: boolean类型, 可选, 是否按顺序插入, 默认为true。
db.createCollection(name, options) //创建集合, options用来指定集合配置的文档
db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } ) //创建集合的例子
db.collection_name.drop() //删除集合
show collections //显示该数据库下的所有集合
字段 | 类型 | 描述 |
---|---|---|
capped | 布尔 | (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。 |
autoIndexID | 布尔 | (可选)如为 true,自动在 _id 字段创建索引。默认为 false。 |
size | 数值 | (可选)为固定集合指定一个最大值(以字节计)。如果 capped 为 true,也需要指定该字段。 |
max | 数值 | (可选)指定固定集合中包含文档的最大数量。 |
插入时集合不存在,插入操作会创建该集合。
在MongoDB中,存储于集合中的每一个文档都需要一个唯一的 _id 字段作为 primary_key。如果一个插入文档操作遗漏了_id
字段,MongoDB驱动会自动为_id
字段生成一个 ObjectId。
db.collection.insert() //集合插入一个或多个文档
db.collection.insertOne() //向集合插入了单个文档
db.collection.insertMany() //向集合插入多个文档
db.users.insertOne(
{
name: "sue",
age: 19,
status: "P"
}
)
db.users.insertMany(
[
{ name: "bob", age: 42, status: "A", },
{ name: "ahn", age: 22, status: "A", }
]
)
**db.collection.insert() **方法返回含有操作状态的 WriteResult 对象
WriteResult({ "nInserted" : 1 })
nInserted 字段指明了插入文档的总数.如果该操作遇到了错误, WriteResult 对象将包含该错误信息
db.collection.find( <query filter>, <projection> )
db.collection.find() # 选择集合中的所有文档
db.users.find( { field1: value1 } ) # 选择所有包含 field 字段并且该值等于特定 <value> 的所有文档
db.users.find( { field: { $in: [ "val1", "val2" ] } } ) # 选择符合field字段值为`val1`或 `val2`的文档
db.users.find( { field1 : val1, field2: val2 } } ) # 选择同时符合两个条件的文档
db.users.find(
{
$or: [ { status: "A" }, { age: { $lt: 30 } } ]
}
) # 选择符合条件1 或条件2 的所有文档
db.users.find(
{
status: "A",
$or: [ { age: { $lt: 30 } }, { type: 1 } ]
}
)
db.collection.updateOne() //即使可能有多个文档通过过滤条件匹配到,但是也最多也只更新一个文档
db.collection.updateMany() //更新所有通过过滤条件匹配到的文档
db.collection.replaceOne() //即使可能有多个文档通过过滤条件匹配到,但是也最多也只替换一个文档
db.collection.update() //即使可能有多个文档通过过滤条件匹配到,但是也最多也只更新或者替换一个文档
db.collection.remove() |
Delete a single document or all documents that match a specified filter. |
---|---|
db.collection.deleteOne() |
Delete at most a single document that match a specified filter even though multiple documents may match the specified filter.3.2 新版功能. |
db.collection.deleteMany() |
删除所有匹配指定过滤条件的文档. |
db.users.deleteMany({})
db.users.remove({})
db.users.deleteMany({ key1: val1 })
db.users.remove( { key1 : val1 } )
db.users.deleteOne( { key1: val1 } )
db.users.remove( { key1: val1 }, 1)