- MongoDB 教程
- MongoDB - 主页
- MongoDB - 概述
- MongoDB - 优点
- MongoDB - 环境
- MongoDB - 数据建模
- MongoDB - 创建数据库
- MongoDB - 删除数据库
- MongoDB - 创建集合
- MongoDB - 删除集合
- MongoDB - 数据类型
- MongoDB - 插入文档
- MongoDB - 查询文档
- MongoDB - 更新文档
- MongoDB - 删除文档
- MongoDB - 投影
- MongoDB - 限制记录
- MongoDB - 记录排序
- MongoDB - 索引
- MongoDB - 聚合
- MongoDB - 复制
- MongoDB - 分片
- MongoDB - 创建备份
- MongoDB - 部署
- MongoDB-Java
- MongoDB-PHP
- 高级 MongoDB
- MongoDB - 关系
- MongoDB - 数据库参考
- MongoDB - 涵盖查询
- MongoDB - 分析查询
- MongoDB - 原子操作
- MongoDB - 高级索引
- MongoDB - 索引限制
- MongoDB - 对象 ID
- MongoDB - 映射减少
- MongoDB - 文本搜索
- MongoDB - 正则表达式
- 与 Rockmongo 合作
- MongoDB-GridFS
- MongoDB - 上限集合
- 自动递增序列
- MongoDB 有用资源
- MongoDB - 问题与解答
- MongoDB - 快速指南
- MongoDB - 有用的资源
- MongoDB - 讨论
MongoDB - 插入文档
在本章中,我们将学习如何在 MongoDB 集合中插入文档。
insert() 方法
要将数据插入到 MongoDB 集合中,需要使用 MongoDB 的insert()或save()方法。
句法
insert()命令的基本语法如下 -
>db.COLLECTION_NAME.insert(document)
例子
> db.users.insert({ ... _id : ObjectId("507f191e810c19729de860ea"), ... title: "MongoDB Overview", ... description: "MongoDB is no sql database", ... by: "tutorials point", ... url: "http://www.tutorialspoint.com", ... tags: ['mongodb', 'database', 'NoSQL'], ... likes: 100 ... }) WriteResult({ "nInserted" : 1 }) >
这里mycol是我们在上一章中创建的集合名称。如果数据库中不存在该集合,则 MongoDB 将创建该集合,然后将文档插入其中。
在插入的文档中,如果我们不指定_id参数,那么MongoDB会为此文档分配一个唯一的ObjectId。
_id 是 12 字节的十六进制数字,对于集合中的每个文档都是唯一的。12 个字节划分如下 -
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
您还可以将文档数组传递到 insert() 方法中,如下所示:
> db.createCollection("post") > db.post.insert([ { title: "MongoDB Overview", description: "MongoDB is no SQL database", by: "tutorials point", url: "http://www.tutorialspoint.com", tags: ["mongodb", "database", "NoSQL"], likes: 100 }, { title: "NoSQL Database", description: "NoSQL database doesn't have tables", by: "tutorials point", url: "http://www.tutorialspoint.com", tags: ["mongodb", "database", "NoSQL"], likes: 20, comments: [ { user:"user1", message: "My first comment", dateCreated: new Date(2013,11,10,2,35), like: 0 } ] } ]) BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 2, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] }) >
要插入文档,您也可以使用db.post.save(document)。如果您未在文档中指定_id ,则save()方法将与insert()方法相同。如果您指定 _id 那么它将替换包含 _id 的文档的整个数据,如 save() 方法中指定的那样。
insertOne() 方法
如果您只需将一个文档插入到集合中,则可以使用此方法。
句法
insert() 命令的基本语法如下 -
>db.COLLECTION_NAME.insertOne(document)
例子
以下示例创建一个名为 empDetails 的新集合,并使用 insertOne() 方法插入文档。
> db.createCollection("empDetails") { "ok" : 1 }
> db.empDetails.insertOne( { First_Name: "Radhika", Last_Name: "Sharma", Date_Of_Birth: "1995-09-26", e_mail: "radhika_sharma.123@gmail.com", phone: "9848022338" }) { "acknowledged" : true, "insertedId" : ObjectId("5dd62b4070fb13eec3963bea") } >
insertMany() 方法
您可以使用 insertMany() 方法插入多个文档。对于此方法,您需要传递一个文档数组。
例子
以下示例使用 insertMany() 方法将三个不同的文档插入到 empDetails 集合中。
> db.empDetails.insertMany( [ { First_Name: "Radhika", Last_Name: "Sharma", Date_Of_Birth: "1995-09-26", e_mail: "radhika_sharma.123@gmail.com", phone: "9000012345" }, { First_Name: "Rachel", Last_Name: "Christopher", Date_Of_Birth: "1990-02-16", e_mail: "Rachel_Christopher.123@gmail.com", phone: "9000054321" }, { First_Name: "Fathima", Last_Name: "Sheik", Date_Of_Birth: "1990-02-16", e_mail: "Fathima_Sheik.123@gmail.com", phone: "9000054321" } ] ) { "acknowledged" : true, "insertedIds" : [ ObjectId("5dd631f270fb13eec3963bed"), ObjectId("5dd631f270fb13eec3963bee"), ObjectId("5dd631f270fb13eec3963bef") ] } >