MongoDB-插入文档
时间:2020-02-23 14:40:50 来源:igfitidea点击:
在此MongoDB教程中,我们将学习插入文档。
插入一个文档
要将一个文档插入到集合中,我们使用db.collection.insertOne()方法。
注意! " collection"是要其中插入文档的集合的名称。
在以下示例中,我们将一个文档插入到学生集合中。
> db.students.insertOne({ "firstname": "", "lastname": "", "studentid": "s01" });
成功的话,我们会在终端上得到类似的响应。
{ "acknowledged" : true, "insertedId" : ObjectId("5d16c693e8cb73839ac9f2ec") }
注意! insertId是MongoDB赋予集合中每个文档的唯一ID(主键)。
为了获取集合中插入的文档,我们使用find()
方法。
> db.students.find() { "_id" : ObjectId("5d16c693e8cb73839ac9f2ec"), "firstname" : "", "lastname" : "", "studentid" : "s01" }
我们将在"查询文档"教程中了解有关find()
的更多信息。
插入多个文件
要插入多个文档,我们使用db.collection.insertMany()方法。
在下面的示例中,我们将在学生集合中插入多个文档。
> db.students.insertMany([ { "firstname": "Jane", "lastname": "Doe", "studentid": "s02" }, { "firstname": "John", "lastname": "Doe", "studentid": "s03" } ]);
成功的话,我们将得到以下回应。
{ "acknowledged" : true, "insertedIds" : [ ObjectId("5d16c6e5e8cb73839ac9f2ed"), ObjectId("5d16c6e5e8cb73839ac9f2ee") ] }
如果现在运行find()
方法,我们将得到以下输出。
> db.students.find() { "_id" : ObjectId("5d16c693e8cb73839ac9f2ec"), "firstname" : "", "lastname" : "", "studentid" : "s01" } { "_id" : ObjectId("5d16c6e5e8cb73839ac9f2ed"), "firstname" : "Jane", "lastname" : "Doe", "studentid" : "s02" } { "_id" : ObjectId("5d16c6e5e8cb73839ac9f2ee"), "firstname" : "John", "lastname" : "Doe", "studentid" : "s03" }
插入多个具有不同字段的文档
在MongoDB中,我们可以插入具有不同数量字段的文档。
在下面的示例中,我们将在学生集合中插入两个新文档。
第一个文档具有"分数"字段。
第二个文档具有" date_of_birth"字段。
> db.students.insertMany([ { "firstname": "Alice", "lastname": "Doe", "studentid": "s04", "score": 10.5 }, { "firstname": "Bob", "lastname": "Doe", "studentid": "s05", "date_of_birth": new Date("2000-01-01") } ]);
" date_of_birth"为" new Date(" <YYYY-mm-dd>")格式,并返回具有指定日期的ISODate。
如果现在使用find().pretty()
方法获取文档,我们将得到以下输出。
> db.students.find().pretty() { "_id" : ObjectId("5d16c9e9e8cb73839ac9f2f1"), "firstname" : "", "lastname" : "", "studentid" : "s01" } { "_id" : ObjectId("5d16c9efe8cb73839ac9f2f2"), "firstname" : "Jane", "lastname" : "Doe", "studentid" : "s02" } { "_id" : ObjectId("5d16c9efe8cb73839ac9f2f3"), "firstname" : "John", "lastname" : "Doe", "studentid" : "s03" } { "_id" : ObjectId("5d16ca23e8cb73839ac9f2f4"), "firstname" : "Alice", "lastname" : "Doe", "studentid" : "s04", "score" : 10.5 } { "_id" : ObjectId("5d16ca23e8cb73839ac9f2f5"), "firstname" : "Bob", "lastname" : "Doe", "studentid" : "s05", "date_of_birth" : ISODate("2000-01-01T00:00:00Z") }
" pretty()"方法以易于阅读的格式返回结果。
插入嵌入/嵌套的文档
在MongoDB中,我们可以将文档包含在文档中(嵌入式/嵌套文档)。
在下面的示例中,我们将在学生集合中插入一个新文档,它具有一个新字段" contact_phone",该字段具有自己的字段-值对。
> db.students.insertOne({ "firstname": "Eve", "lastname": "Doe", "studentid": "s06", "contact_phone": { "primary": { "number": "+919800000000", "name": "Bill Doe", "relation": "Father" }, "secondary": [ { "number": "+919800000001", "name": "Mac Doe", "relation": "Brother" } ] } });
如果现在运行find()
方法,我们将得到以下输出。
> db.students.find().pretty(); { "_id" : ObjectId("5d16c9e9e8cb73839ac9f2f1"), "firstname" : "", "lastname" : "", "studentid" : "s01" } { "_id" : ObjectId("5d16c9efe8cb73839ac9f2f2"), "firstname" : "Jane", "lastname" : "Doe", "studentid" : "s02" } { "_id" : ObjectId("5d16c9efe8cb73839ac9f2f3"), "firstname" : "John", "lastname" : "Doe", "studentid" : "s03" } { "_id" : ObjectId("5d16ca23e8cb73839ac9f2f4"), "firstname" : "Alice", "lastname" : "Doe", "studentid" : "s04", "score" : 10.5 } { "_id" : ObjectId("5d16ca23e8cb73839ac9f2f5"), "firstname" : "Bob", "lastname" : "Doe", "studentid" : "s05", "date_of_birth" : ISODate("2000-01-01T00:00:00Z") } { "_id" : ObjectId("5d16cfa4e8cb73839ac9f2f6"), "firstname" : "Eve", "lastname" : "Doe", "studentid" : "s06", "contact_phone" : { "primary" : { "number" : "+919800000000", "name" : "Bill Doe", "relation" : "Father" }, "secondary" : [ { "number" : "+919800000001", "name" : "Mac Doe", "relation" : "Brother" } ] } }
在下一个教程中,我们将学习查询文档。