MongoDB增删改查详解攻略
MongoDB是一款非关系型数据库,支持JSON样式的文档数据存储格式和动态查询。
增加文档
插入文档可以使用db.collection.insert()方法,或db.collection.save()方法。
db.collection.insert()
db.collection.insert(
<document or array of documents>,
{
writeConcern: <document>,
ordered: <boolean>
}
)
该方法将指定文档或文档数组存储到collection中。
其中:
<document or array of documents>
:需插入的文档或文档数组,每个文档可以是一个单独的json对象。writeConcern
:可选,是一个文档对象,用于指定写入操作的可靠性级别。ordered
:可选,布尔值。默认值为true,表示插入操作必须按照文档的顺序进行。当设置为false时,表示进行无序插入。
举个例子:
// 插入单个文档
db.test.insert({ _id: 1, name: "Jack", age: 20 })
// 插入多个文档
db.test.insert([
{ _id: 2, name: "Lucy", age: 18 },
{ _id: 3, name: "Tom", age: 25 }
])
db.collection.save()
db.collection.save(
<document>,
{
writeConcern: <document>,
ordered: <boolean>
}
)
该方法会将指定文档保存到collection中。如果文档在collection中已存在,将被更新。
其中:
<document>
:要插入的文档对象。如果未提供_id
字段,MongoDB将为此文档自动创建一个ObjectId。writeConcern
:可选项,是一个文档,用于指定写入操作的可靠性级别。ordered
:可选项,布尔值。默认为true,表示插入操作必须按照文档的顺序进行。当设置为false时,表示进行无序插入。
举个例子:
db.test.save({ _id: 1, name: "Jack", age: 21 }) // 更新_id为1的文档
删除文档
删除文档使用db.collection.remove()
方法。
db.collection.remove(
<query>,
{
writeConcern: <document>,
ordered: <boolean>
}
)
其中:
<query>
:可选项,是一个文档,用于描述要被删除的文档。如果未提供query,则删除集合中的所有文档。writeConcern
:可选项,是一个文档对象,用于指定删除操作的可靠性级别。ordered
:可选项,布尔值。默认值为true,表示删除操作必须按照文档的顺序进行。当设置为false时,表示进行无序删除。
举个例子:
// 删除年龄小于20的文档
db.test.remove({ age: { $lt: 20 } })
更新文档
更新文档可以使用db.collection.update()
方法。
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>,
collation: <document>
}
)
其中:
<query>
:查询表达式,用于选择要更新的文档。<update>
:更新操作符,用于更新文档中的字段。upsert
:可选项,boolean类型。如果为true,表示如果未找到符合查询条件的文档,则创建一个新文档并将更新操作应用到该文档。默认值为false。multi
:可选项,boolean类型。如果为true,表示需要更新所有匹配的文档,如果为false,只更新第一个匹配的文档。默认值为false。writeConcern
:可选项,是一个文档对象,用于指定更新操作的可靠性级别。collation
:可选项,用于指定字符串比较规则。
举个例子:
// 查询条件为 { name: "Jack" },将年龄age字段修改为22
db.test.update({ name: "Jack" }, { $set: { age: 22 } })
// 查询条件为{name: "Jack"},更新所有匹配的文档
db.test.update({ name: "Jack" }, { $set: { age: 22 } }, { multi: true })
查询文档
查询文档可以使用db.collection.find()
方法。
db.collection.find(<query>, <projection>)
其中:
<query>
:可选项,表示用于查询文档的筛选条件,类似于where语句。<projection>
:可选项,表示返回文档中需要返回的字段,类似于select语句中的字段选择。
举个例子:
// 查询所有数据
db.test.find()
// 查询年龄等于20的文档
db.test.find({ age: 20 })
// 查询年龄等于20的文档,并只返回名字和年龄两个字段
db.test.find({ age: 20 }, { _id: 0, name: 1, age: 1 })
总结
上述示例说明了MongoDB的增删改查操作,了解了这些操作后,可以进行更加高效的数据操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mongodb增删改查详解_动力节点Java学院整理 - Python技术站