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"
}
]
}
}
在下一个教程中,我们将学习查询文档。

