本文主要是对mongodb中对文档、集合的删除更新等操作。参考《MongoDB权威指南》
1、插入
插入一条记录
> db.users.insert({"name":"robin","age":28})
> db.users.find()
{ "_id" : ObjectId("4f62c1b91d7e3e06f0c896cf"), "name" : "robin", "age" : 28 }
这里插入后默认会给文档增加一个“_id”键,当然也可以指定,如
> db.users.insert({"_id":1,"name":"robin","age":28})
> db.users.findOne()
{ "_id" : 1, "name" : "robin", "age" : 28 }
上面说到批量插入,可以提高性能。当然这里说出来重点不是这个,于是我尝试了插入批量数据:
db.users.find([{"name":"robin1","age":27},{"name":"robin2","age":28},{"name":"robin3","age":29},{"name":"robin4","age":26}])
可惜并不是想要的结果:
{ "_id" : ObjectId("4f61e98d6a11c11008e76b60"), "0" : { "name" : "robin1", "age" : 27 }, "1" : { "name" : "robin2", "age" : 28 }, "2" : { "name" : "robin3", "age" : 29 }, "3" : { "name" : "robin4", "age" : 26 } }
查了官方的文档貌似shell并没有支持
http://www.mongodb.org/display/DOCS/Inserting
在pymongo中有对批量插入的支持:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pymongo import Connection
import json
import unittest
class TestInsert(unittest.TestCase):
def setUp(self):
self.connection = Connection('localhost', 27017)
self.db = self.connection['sample']
self.users = self.db.users
def testInsert(self):
user = {"name":"robin", "age":30, "address":"chengdu"}
self.users.insert(user)
data = self.users.find_one({"name":"robin"})
self.assertEqual(data['age'], 30)
self.assertEqual(data['address'], "chengdu")
def testInsertId(self):
user = {"_id":1, "name":"duuuu", "age":30, "address":"chengdu"}
self.users.insert(user)
data = self.users.find_one({"name":"duuuu"})
self.assertEqual(data['age'], 30)
self.assertEqual(data['address'], "chengdu")
self.assertEqual(data['_id'], 1)
def testBatchInsert(self):
datas = [{"_id":10, "name":"du", "age":30, "address":"chengdu"}, {"_id":11, "name":"du", "age":30, "address":"chengdu"}, {"_id":12, "name":"du", "age":30, "address":"chengdu"}]
self.users.insert(datas)
data = self.users.find({"name":"du"}).count()
self.assertEqual(data, 3)
def tearDown(self):
self.users.remove()
self.connection.close()
2、删除
db.document.remove()
db.document.remove({"query":"value"})
前者会删除所有的document,但不会删除集合本身,原有的索引也会保留。后者会根据查询条件选择删除
#删除全部document
> db.users.insert({"name":"robin","age":30})
> db.users.findOne()
{
"_id" : ObjectId("4f62d0261d7e3e06f0c896d0"),
"name" : "robin",
"age" : 30
}
> db.users.remove()
> db.users.findOne()
null
#根据条件删除
> db.users.insert({"name":"robin","age":30})
> db.users.insert({"name":"duuuu","age":30})
> db.users.insert({"name":"xxxxx","age":30})
> db.users.find()
{ "_id" : ObjectId("4f62d0501d7e3e06f0c896d1"), "name" : "robin", "age" : 30 }
{ "_id" : ObjectId("4f62d05d1d7e3e06f0c896d2"), "name" : "duuuu", "age" : 30 }
{ "_id" : ObjectId("4f62d0651d7e3e06f0c896d3"), "name" : "xxxxx", "age" : 30 }
> db.users.remove({"name":"xxxxx"})
> db.users.find()
{ "_id" : ObjectId("4f62d0501d7e3e06f0c896d1"), "name" : "robin", "age" : 30 }
{ "_id" : ObjectId("4f62d05d1d7e3e06f0c896d2"), "name" : "duuuu", "age" : 30 }
#如果数据不存在
> db.users.remove({"name":"xxxxx"})
同时,还有对document提供drop的操作
db.drop_collection("users")
这个效率快,但是会将document中的什么数据都删除
相应的,在pymongo提供了对这些shell命令的操作方法:
collection.remove()
collection.drop()
分享到:
相关推荐
这些操作通常会涉及MongoDB的`insert()`, `find()`, `update()`, `remove()`等方法。 总的来说,`HMongodb`类提供了一种封装好的方式来管理和操作MongoDB数据库,使得在PHP中进行MongoDB数据库交互变得更加便捷和...
4. 插入数据:使用以下命令插入数据:`db.usr.insert({'name':'bzmspace'})`和`db.usr.insert({'id':'1','name':'bzmspace'})`。 三、用户管理 1. 创建用户:使用以下命令创建一个名为“bzm”的用户:`db.create...
db.myCollection.insert({name: "John", age: 30, city: "New York"}); ``` 查询文档: ```javascript db.myCollection.find({name: "John"}); ``` 更新文档: ```javascript db.myCollection.update({name: ...
{ok, _} = mongodb:insert(Pid, "users", [Doc]). % 查询文档 Query = #{<<"name">> => <<"John">>}, [{Result}] = mongodb:find_one(Pid, "users", Query). % 更新文档 Update = #{$set">> => #{<<"age">> => 31}...
mongoTemplate.remove(new Query(Criteria.where("id").is(id)), User.class); } ``` 此外,SpringData MongoDB还支持Repository接口,允许通过继承`MongoRepository`来定义更高级别的查询方法。例如: ```java ...
在PHP中操作MongoDB是一种常见的任务,MongoDB是一种流行的NoSQL数据库,它以JSON格式存储数据,适合处理大量非结构化或半结构化数据。PHP的MongoDB扩展提供了一种简单的方式来与MongoDB交互。以下是关于如何使用PHP...
1. **增(Insert)**:使用`MongoTemplate`的`insert()`方法,可以将对象保存到MongoDB中。例如,如果我们有一个`User`实体类,可以这样插入: ```java User user = new User(); // 设置user属性... mongo...
- 集合操作:集合是MongoDB中的表,创建集合是自动完成的,插入数据使用`db.myCollection.insert({key1: value1, key2: value2})`。 - 文档操作:查询数据使用`db.myCollection.find()`,更新数据用`db....
mongod --dbpath "D:\Program Files\mongodb_1.8.1\data\db" --logpath "D:\Program Files\mongodb_1.8.1\data\log\MongoDB.log" --remove --serviceName "MongoDB" 七、测试 MongoDB 客户端 1. 进入 D:\Program ...
6. 删除数据:`db.user.remove({name:'gdh'})` 创建表 1. 语法:`db.createCollection(name, options)` 2. options 可取以下值: * Capped:(可选)如果为 true,则创建固定集合。 * autoIndexId:(可选)如为...
除此之外,还有`update()`方法用于更新数据,`remove()`方法用于删除数据,`group()`方法用于分组统计,`aggregate()`方法用于聚合操作等。在实际开发中,还需要熟悉这些高级功能,以便更好地利用MongoDB的特性。 ...
>D:\mongodb\bin>mongod --dbpath "D:\mongodb\data\db" --logpath "D:\mongodb\data\log\MongoDB.log" --remove --serviceName "MongoDB" ``` #### 四、使用 MongoDB - 一旦 MongoDB 服务成功启动,可以通过...
sudo apt-get --purge remove mongodb mongodb-clients mongodb-server mongodb-dev ``` #### 三、安装最新稳定版MongoDB 1. **添加官方源**: - 导入密钥: ```bash sudo apt-key adv --keyserver hkp://...
### MongoDB基本操作详解 #### MongoDB简介 MongoDB是一款开源的NoSQL数据库系统,以其灵活性、高性能及可扩展性著称,特别适用于Web应用的开发。MongoDB的数据模型基于文档,这意味着它存储的数据形式类似于JSON...
db.test_table.remove({c: 2}) ``` - **删除集合**: ```bash db.test_table.drop() ``` #### MongoDB的update方法详解 `db.collection.update()` 方法用于更新集合中的文档。该方法接受三个主要参数: - **...
在MongoDB中,可以使用`use`命令切换到特定的数据库,如`xsgl`,然后使用`insert`方法批量添加数据到`member`集合。例如,创建一个包含学生信息的文档并插入数据。 2. 查询操作: `find`方法用于查找集合中的数据...
- 数据插入:使用db.collection.insert()方法插入数据,如`db.users.insert({name:"John", age:25})`。 - 查询数据:使用db.collection.find()方法查询数据,如`db.users.find({name:"John"})`。 - 更新数据:...
- 删除文档:`db.<collectionname>.remove(, )`删除匹配条件的文档,`justOne`用于指定是否只删除一个。 6. 聚合操作: MongoDB提供聚合框架,用于处理数据并返回计算结果。`db.<collectionname>.aggregate()`...
2. 插入文档:`db.<collection_name>.insert({key1: value1, key2: value2})`。 3. 查询文档:`db.<collection_name>.find()`。 4. 更新文档:`db.<collection_name>.update({key1: value1}, {$set: {key2: newValue...