MongoDB 数据增加操作

MongoDB 数据增加(insert 操作)

MongoDB 文档的数据结构 和 JSON基本一样。MongoDB 中所有存储在集合中的数据都是BSON格式。BSON是一种类似 JSON 的一种二进制形式的存储格式,简称Binary JSON。

语法

MongoDB 使用 insert() 或 save() 方法向集合中插入文档。

db.COLLECTION_NAME.insert(document) 
# 或者 
db.COLLECTION_NAME.save(document)
# 或者 
db.COLLECTION_NAME.insertOne(document)    // 插入单挑
# 或者 
db.COLLECTION_NAME.insertMany(document)    // 插入多条

实例

插入单条数据:

直接插入使用 Json 格式的数据:

# 语法 
db.collectionName.insert(document)

# 例子
db.logs.insert({"name":"JBL Charge 1", "id":"0001"})

保存数组:

我们可以一次插入多条数据到数据库中(使用 Json 数组就行了):

db.logs.insert([{"name":"JBL Charge 2", "id":"0002"}, {"name":"JBL Charge 3", "id":"0003"}])

图示:

直接实用循环保存数据

由于MongoDB 支持 JS,可以使用下面的操作:

for (var i=0; i<50; i++){ 
    db.logs.insert({"name":"loop insert"+i, "id":"loop"+i})
}

如果数据保存很多的情况下,查询的时候,不会将数据全部列出,只会列出一部分。

创建复杂点的数据

db.logs.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    url: 'http://www.baidu.com',
    tags: ['mongodb', 'database', 'NoSQL']
})

Objectld

       当我们成功的插入一条文档到集合中后,我们会发现多了一个键 "_id" 和自动生成的 ObjectId 类型值。通常会在客户端由驱动程序完成。

  • MongoDB的设计理念:能从服务器端转移到驱动程序来做的事,就尽量转移。扩展应用层也要比扩展数据库层容易得多。将事务交由客户端来处理,就减轻了数据库扩展的负担。
  • 在客户端生成Objectld,驱动程序能够提供更加丰富的API。

       ObjectId 占用12字节的存储空间,每个字节两位十六进制数字,是一个24位的字符串。由“时间戳”“机器名”“PID号”“计数器”组成。使用机器名的好处是在分布式环境中能够避免单点计数的性能瓶颈。使用PID号的好处是支持同一机器内运行多个mongod实例。最终采用时间戳和计数器的组合来保证唯一性。

1. 机器名(4个字节。从标准纪元开始,单位为秒

  • 时间戳,与随后的5个字节(机器名+PID)组合起来,提供了秒级别的唯一性。
  • 由于时间戳在前,这意味着Objectld大致会按照插入的顺序排列,这对于某些方面很有用,如将其作为索引提高效率,但是这个是没有保证的。
  • 这4个字节也隐含了文档创建的时间。绝大多数驱动都会公开一个方法从Objectld获取这个信息。
     

2. 机器名(3个字节

    所在主机的唯一标识符。通常是机器主机名的散列值,机器名通过Md5加密后取前三个字节。

3.PID(2个字节)

     为了确保在同一台机器上并发的多个进程产生的Objectld是唯一的,所以加上进程标识符(PID).注意到每次重启mongod进程后PID号通常会发生变化就可以了。   

  前9字节保证了同一秒钟不同机器不同进程产生的Objectld是唯一的。

4.计数器(3个字节)

       表示的取值范围就是 256*256*256 = 16777216。一个自动增加的计数器,确保相同进程同一秒产生的 Objectld 也是不一样的同一秒钟最多允许每个进程拥有2563 (16 777 216) 不同的 Objectld。

更多查看官网介绍

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要修改MongoDB中的数据,您可以使用update()方法。update()方法允许您指定修改的文档的条件以及要进行的更新操作。 以下是一些常见的更新操作示例: 1. 更新一个字段的值 假设您有一个名为“users”的集合,其中包含名为“John”的用户文档,您可以使用以下代码将其电子邮件地址从“john@example.com”更改为“john@newexample.com”: ``` db.users.update( { name: "John" }, { $set: { email: "john@newexample.com" } } ) ``` 2. 更新多个字段的值 您可以使用相同的“$set”操作符将多个字段的值更新为文档: ``` db.users.update( { name: "John" }, { $set: { email: "john@newexample.com", age: 30, location: "New York" } } ) ``` 3. 增加一个字段的值 您可以使用“$set”操作符来增加一个新的字段,如下所示: ``` db.users.update( { name: "John" }, { $set: { "address.city": "New York" } } ) ``` 在上面的示例中,“address”是一个嵌套的文档,您可以使用点符号访问它的子字段。 4. 删除一个字段 要删除一个字段,您可以使用“$unset”操作符: ``` db.users.update( { name: "John" }, { $unset: { email: 1 } } ) ``` 在上面的示例中,“email”字段将从文档中删除。 请注意,这些操作都只会修改符合指定条件的第一条文档。如果您需要更新多个文档,请使用updateMany()方法。 ### 回答2: 以MongoDB中文档的方式存储数据是一种常见的方法。修改MongoDB中的数据可以通过使用update或updateMany方法来实现。 1. 使用update方法: - 首先,选择你想要修改数据的集合(collection)。 - 然后,确定你希望修改的文档(document),并使用条件(criteria)来定位该文档。例如,你可以使用_id字段来定位唯一文档。 - 最后,指定你想要修改的数据字段,并提供要进行修改的新值。 - 示例代码如下: ``` db.collectionName.update( { _id: ObjectId("文档ID") }, { $set: { 字段名: 新值 } } ) ``` 2. 使用updateMany方法: - 当你希望修改多个文档时,可以使用updateMany方法。和update方法类似,你需要选择集合,并使用条件定位需要修改的文档。 - 示例代码如下: ``` db.collectionName.updateMany( { 条件 }, { $set: { 字段名: 新值 } } ) ``` 需要注意的是,MongoDB中的修改操作是原子性的,即要么所有的修改都会被应用,要么都不会被应用。此外,你还可以使用其他操作符(如$inc、$push等)来修改文档中的数据。 总结:MongoDB中使用update或updateMany方法来修改数据。你需要选择集合,并使用条件定位需要修改的文档。然后,指定要修改的数据字段和新值。注意,修改操作是原子性的,且你可以使用其他操作符来修改数据。 ### 回答3: MongoDB是一款非关系型数据库管理系统,具有丰富的功能和灵活的数据操作方式。要修改MongoDB中的数据,可以通过以下几个步骤: 1. 连接到MongoDB数据库:使用MongoDB提供的连接方法,连接到目标数据库服务器。可以使用MongoDB的默认端口号(27017)以及数据库的连接字符串。 2. 选择要修改的数据集合:在连接成功后,选择要修改的数据集合(类似于关系型数据库中的表)。可以使用MongoDB的db.collection()方法指定集合名称,并将其赋给一个变量。 3. 查询要修改的数据:使用find()方法查询满足修改条件的数据。可以使用查询条件,如字段相等、大于或小于等,来过滤出需要修改的数据。该方法返回一个游标,可以通过遍历来获取数据。 4. 修改数据:对查询到的数据进行修改。可以使用update()方法来更新数据。此方法接收两个参数,第一个参数是查询条件,用于指定要修改哪些数据;第二个参数是要修改的值,用于指定修改后的新值。 5. 执行修改操作:保存对数据的修改。通过调用update()方法,将修改后的数据保存到数据库中。可以设置多个选项:如是否批量修改、是否插入新数据等。 6. 检查修改结果:可以通过方法的返回值来检查修改是否成功。根据返回的结果,可以判断是否需要进一步处理。 7. 关闭数据库连接:最后,使用close()方法关闭数据库连接,释放资源。 以上就是使用MongoDB修改数据的基本过程。需要注意的是,MongoDB数据修改操作相对灵活,可以直接修改字段的值,也可以添加新的字段。而且,由于MongoDB不需要像关系型数据库那样预先定义表结构,可以根据需要动态修改数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wayfreem

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值