mongo

本文演示了在MongoDB中如何使用update和insert方法来修改和添加数据记录。通过具体的例子展示了更新匹配条件下的文档、处理重复键错误及插入新文档的过程。
{ "_id" : 1, "name" : "wangshumin3" }
{ "_id" : 4, "name" : "wangshumin3" }
{ "_id" : 5, "name" : "wangshumin3" }
{ "_id" : 2, "name" : "wangshumin2" }
{ "_id" : 3, "name" : "wangshumin3" }
> db.stu.update({name:"wangshumin1"},{name:"wangshumin3"});
WriteResult({ "nMatched" : 0, "nUpserted" : 0, "nModified" : 0 })
> db.stu.update({name:"wangshumin3"},{name:"wangshumin1"});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin3" }
{ "_id" : 5, "name" : "wangshumin3" }
{ "_id" : 2, "name" : "wangshumin2" }
{ "_id" : 3, "name" : "wangshumin3" }
> db.stu.update({name:"wangshumin3"},{name:"wangshumin2"});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin2" }
{ "_id" : 5, "name" : "wangshumin3" }
{ "_id" : 2, "name" : "wangshumin2" }
{ "_id" : 3, "name" : "wangshumin3" }
> db.stu.update({name:"wangshumin2"},{name:"wangshumin4"});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin4" }
{ "_id" : 5, "name" : "wangshumin3" }
{ "_id" : 2, "name" : "wangshumin2" }
{ "_id" : 3, "name" : "wangshumin3" }
> db.stu.update({name:"wangshumin2"},{name:"wangshumin4"},{age:22});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin4" }
{ "_id" : 5, "name" : "wangshumin3" }
{ "_id" : 2, "name" : "wangshumin4" }
{ "_id" : 3, "name" : "wangshumin3" }
> db.stu.update({name:"wangshumin3"},{name:"wangshumin4"},{age:22});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin4" }
{ "_id" : 5, "name" : "wangshumin4" }
{ "_id" : 2, "name" : "wangshumin4" }
{ "_id" : 3, "name" : "wangshumin3" }
> db.stu.insert([{_id:6,name:"wangshumin6",addr:"xuzhou"},{_id:2,name:"wangshumin2"},{name:"wangshumin1"}])
BulkWriteResult({
"writeErrors" : [
{
"index" : 1,
"code" : 11000,
"errmsg" : "E11000 duplicate key error collection: shop.stu index: _id_ dup key: { : 2.0 }",
"op" : {
"_id" : 2,
"name" : "wangshumin2"
}
}
],
"writeConcernErrors" : [ ],
"nInserted" : 1,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
> db.stu.insert([{_id:6,name:"wangshumin6",addr:"xuzhou"}])
BulkWriteResult({
"writeErrors" : [
{
"index" : 0,
"code" : 11000,
"errmsg" : "E11000 duplicate key error collection: shop.stu index: _id_ dup key: { : 6.0 }",
"op" : {
"_id" : 6,
"name" : "wangshumin6",
"addr" : "xuzhou"
}
}
],
"writeConcernErrors" : [ ],
"nInserted" : 0,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
> db.stu.insert([{_id:6,name:"wangshumin6",addr:"xuzhou"}])
BulkWriteResult({
"writeErrors" : [
{
"index" : 0,
"code" : 11000,
"errmsg" : "E11000 duplicate key error collection: shop.stu index: _id_ dup key: { : 6.0 }",
"op" : {
"_id" : 6,
"name" : "wangshumin6",
"addr" : "xuzhou"
}
}
],
"writeConcernErrors" : [ ],
"nInserted" : 0,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})

> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin4" }
{ "_id" : 5, "name" : "wangshumin4" }
{ "_id" : 2, "name" : "wangshumin4" }
{ "_id" : 3, "name" : "wangshumin3" }
{ "_id" : 6, "name" : "wangshumin6", "addr" : "xuzhou" }
> db.stu.insert([{_id:7,name:"wangshumin7",addr:"xuzhou7"}])
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 1,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin4" }
{ "_id" : 5, "name" : "wangshumin4" }
{ "_id" : 2, "name" : "wangshumin4" }
{ "_id" : 3, "name" : "wangshumin3" }
{ "_id" : 6, "name" : "wangshumin6", "addr" : "xuzhou" }
{ "_id" : 7, "name" : "wangshumin7", "addr" : "xuzhou7" }
> db.stu.update({ "_id" : 6},{age:22});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin4" }
{ "_id" : 5, "name" : "wangshumin4" }
{ "_id" : 2, "name" : "wangshumin4" }
{ "_id" : 3, "name" : "wangshumin3" }
{ "_id" : 6, "age" : 22 }
{ "_id" : 7, "name" : "wangshumin7", "addr" : "xuzhou7" }
> db.stu.update({ "_id" : 6},{age:22},{"addr" : "xuzhou6"});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin4" }
{ "_id" : 5, "name" : "wangshumin4" }
{ "_id" : 2, "name" : "wangshumin4" }
{ "_id" : 3, "name" : "wangshumin3" }
{ "_id" : 6, "age" : 22 }
{ "_id" : 7, "name" : "wangshumin7", "addr" : "xuzhou7" }
> db.stu.update({ "_id" : 6},{age:23},{"addr" : "xuzhou6"});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin4" }
{ "_id" : 5, "name" : "wangshumin4" }
{ "_id" : 2, "name" : "wangshumin4" }
{ "_id" : 3, "name" : "wangshumin3" }
{ "_id" : 6, "age" : 23 }
{ "_id" : 7, "name" : "wangshumin7", "addr" : "xuzhou7" }
> db.stu.update({ "_id" : 6},{"addr" : "xuzhou6"});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin4" }
{ "_id" : 5, "name" : "wangshumin4" }
{ "_id" : 2, "name" : "wangshumin4" }
{ "_id" : 3, "name" : "wangshumin3" }
{ "_id" : 6, "addr" : "xuzhou6" }
{ "_id" : 7, "name" : "wangshumin7", "addr" : "xuzhou7" }
> db.stu.insert()
2018-03-03T20:31:19.961+0800 E QUERY    [thread1] Error: no object passed to insert! :
DBCollection.prototype.insert@src/mongo/shell/collection.js:270:1
@(shell):1:1




> db.stu.find();
{ "_id" : 1, "name" : "wangshumin1" }
{ "_id" : 4, "name" : "wangshumin4" }
{ "_id" : 5, "name" : "wangshumin4" }
{ "_id" : 2, "name" : "wangshumin4" }
{ "_id" : 3, "name" : "wangshumin3" }
{ "_id" : 6, "addr" : "xuzhou6" }
{ "_id" : 7, "name" : "wangshumin7", "addr" : "xuzhou7" }
Mongo通常指MongoDB,它是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。 ### Mongo shell操作原生方法 Mongo shell提供了一系列原生方法,例如`Date()`、`UUID(hex_string)`、`Mongo.getDB(database)`、`Mongo(host:port)`、`connect(string)`、`cat(path)`、`version()`、`cd(path)`、`getMemInfo()`、`hostname()`、`load(path)`、`_rand()`等[^1]。 ### Mongo命令 #### 数据库操作 - 查看数据库:使用`show`命令。 - 进入/创建数据库:使用`use`命令。 - 查看当前所在数据库:使用`db`命令。 - 删除数据库:使用`dropDatabase`命令[^1]。 #### 集合操作 - 创建集合:使用`createCollection`方法。 - 查看集合:使用`show`命令。 - 删除集合:文档中未详细说明具体命令,但有相关操作分类提及[^1]。 #### 文档操作 - 插入文档:使用`insert`方法。 - 查询文档:使用`find`方法,还可结合映射方法、操作符(比较操作符、类型操作符)进行更复杂的查询。 - 更新文档:使用`update`方法,配合更新操作符,如`$inc`(增加)、`$set`(设置)、`$unset`(删除)、`$push`(追加)、`pushAll`(追加)、`$addToSet`(增加)、`$pop`(删除)、`$pull`(删除)、`$pullAll`(删除)、`$rename`(重命名)等。 - 删除文档:使用`remove`方法[^1]。 ### 数据类型注意事项 Mongo默认的数字类型是double,若要使用整数,需使用`NumberInt(1)`这种形式,例如`db.user.insert( { age:NumberInt(1) } )`,这样`age`的值才是整数[^2]。 ### 配置文件 在`conf`子目录新建`mongod.conf`文件可进行MongoDB的配置,例如设置数据存储目录`dbpath=/data/db`、日志存储文件、日志追加模式、允许客户端任意IP连接、绑定端口、副本集名称等[^3]。 ### 索引查看 类似于MySQL,Mongo也有`explain`方法,可查看索引的使用情况。例如`db.users.find({"name": "user100"}).explain()`能查看是否使用了索引,以及其他详细信息,包括使用的索引、扫描的文档数据、结果的数量、查询用时等[^4]。 ### 代码示例 以下是一个简单的MongoDB插入文档的Python代码示例: ```python from pymongo import MongoClient # 连接到MongoDB client = MongoClient('mongodb://localhost:27017/') # 选择数据库 db = client['test_database'] # 选择集合 collection = db['test_collection'] # 插入文档 document = {"name": "John", "age": 30} result = collection.insert_one(document) print(f"Inserted document with ID: {result.inserted_id}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值