`
mj4d
  • 浏览: 302584 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

mongodb: insert remove

阅读更多

本文主要是对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()
   

 

分享到:
评论

相关推荐

    PHP实现的MongoDB数据库操作类分享

    这些操作通常会涉及MongoDB的`insert()`, `find()`, `update()`, `remove()`等方法。 总的来说,`HMongodb`类提供了一种封装好的方式来管理和操作MongoDB数据库,使得在PHP中进行MongoDB数据库交互变得更加便捷和...

    Mongodb基本操作

    4. 插入数据:使用以下命令插入数据:`db.usr.insert({'name':'bzmspace'})`和`db.usr.insert({'id':'1','name':'bzmspace'})`。 三、用户管理 1. 创建用户:使用以下命令创建一个名为“bzm”的用户:`db.create...

    MongoDB:一些MongoDB测试

    db.myCollection.insert({name: "John", age: 30, city: "New York"}); ``` 查询文档: ```javascript db.myCollection.find({name: "John"}); ``` 更新文档: ```javascript db.myCollection.update({name: ...

    mongodb-erlang:Erlang的MongoDB驱动程序

    {ok, _} = mongodb:insert(Pid, "users", [Doc]). % 查询文档 Query = #{<<"name">> => <<"John">>}, [{Result}] = mongodb:find_one(Pid, "users", Query). % 更新文档 Update = #{$set">> => #{<<"age">> => 31}...

    spring_mongodb.zip

    mongoTemplate.remove(new Query(Criteria.where("id").is(id)), User.class); } ``` 此外,SpringData MongoDB还支持Repository接口,允许通过继承`MongoRepository`来定义更高级别的查询方法。例如: ```java ...

    php操作mongodb详解

    在PHP中操作MongoDB是一种常见的任务,MongoDB是一种流行的NoSQL数据库,它以JSON格式存储数据,适合处理大量非结构化或半结构化数据。PHP的MongoDB扩展提供了一种简单的方式来与MongoDB交互。以下是关于如何使用PHP...

    springboot-mongodb

    1. **增(Insert)**:使用`MongoTemplate`的`insert()`方法,可以将对象保存到MongoDB中。例如,如果我们有一个`User`实体类,可以这样插入: ```java User user = new User(); // 设置user属性... mongo...

    MongoDB安装包.zip

    - 集合操作:集合是MongoDB中的表,创建集合是自动完成的,插入数据使用`db.myCollection.insert({key1: value1, key2: value2})`。 - 文档操作:查询数据使用`db.myCollection.find()`,更新数据用`db....

    MongoDB安装过程

    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 ...

    MongoDB的介绍和使用.docx

    6. 删除数据:`db.user.remove({name:'gdh'})` 创建表 1. 语法:`db.createCollection(name, options)` 2. options 可取以下值: * Capped:(可选)如果为 true,则创建固定集合。 * autoIndexId:(可选)如为...

    php操作MongoDB使用说明

    除此之外,还有`update()`方法用于更新数据,`remove()`方法用于删除数据,`group()`方法用于分组统计,`aggregate()`方法用于聚合操作等。在实际开发中,还需要熟悉这些高级功能,以便更好地利用MongoDB的特性。 ...

    windows下mongodb安装与使用整理

    >D:\mongodb\bin>mongod --dbpath "D:\mongodb\data\db" --logpath "D:\mongodb\data\log\MongoDB.log" --remove --serviceName "MongoDB" ``` #### 四、使用 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基本操作.docx

    ### MongoDB基本操作详解 #### MongoDB简介 MongoDB是一款开源的NoSQL数据库系统,以其灵活性、高性能及可扩展性著称,特别适用于Web应用的开发。MongoDB的数据模型基于文档,这意味着它存储的数据形式类似于JSON...

    《mongodb入门》读书笔记

    db.test_table.remove({c: 2}) ``` - **删除集合**: ```bash db.test_table.drop() ``` #### MongoDB的update方法详解 `db.collection.update()` 方法用于更新集合中的文档。该方法接受三个主要参数: - **...

    MongoDB期末考试测试题

    在MongoDB中,可以使用`use`命令切换到特定的数据库,如`xsgl`,然后使用`insert`方法批量添加数据到`member`集合。例如,创建一个包含学生信息的文档并插入数据。 2. 查询操作: `find`方法用于查找集合中的数据...

    mongodb-win32-i386-2.4.6安装包

    - 数据插入:使用db.collection.insert()方法插入数据,如`db.users.insert({name:"John", age:25})`。 - 查询数据:使用db.collection.find()方法查询数据,如`db.users.find({name:"John"})`。 - 更新数据:...

    mongodb 数据库基本操作

    - 删除文档:`db.<collectionname>.remove(, )`删除匹配条件的文档,`justOne`用于指定是否只删除一个。 6. 聚合操作: MongoDB提供聚合框架,用于处理数据并返回计算结果。`db.<collectionname>.aggregate()`...

    mongodb安装包

    2. 插入文档:`db.<collection_name>.insert({key1: value1, key2: value2})`。 3. 查询文档:`db.<collection_name>.find()`。 4. 更新文档:`db.<collection_name>.update({key1: value1}, {$set: {key2: newValue...

Global site tag (gtag.js) - Google Analytics