MongoDB 插入文档
-
插入文档
在本章中,我们将学习如何在MongoDB集合中插入文档。 -
insert()方法
要将数据插入MongoDB集合,您需要使用MongoDB的insert()或save()方法。语法>db.COLLECTION_NAME.insert(document)
示例db.users.insert({ _id : ObjectId("507f191e810c19729de860ea"), title: "MongoDB Overview", description: "MongoDB is no sql database", by: "菜鸟教程", url: "http://www.cainiaoya.com", tags: ['mongodb', 'database', 'NoSQL'], likes: 100 }) WriteResult({ "nInserted" : 1 })
users集合如果不存在会自动创建。
在插入的文档中,如果不指定_id参数,则MongoDB会为此文档分配一个唯一的ObjectId。_id是集合中每个文档唯一的12字节十六进制数。12个字节划分如下-_id: ObjectId(4 字节 时间戳, 3 字节 机器id, 2 字节 进程id, 3 字节自增)
您还可以将文档数组传递到insert()方法中,如下所示:db.post.insert([ { title: "MongoDB Overview", description: "MongoDB is no SQL database", by: "菜鸟教程", url: "http://www.cainiaoya.com", tags: ["mongodb", "database", "NoSQL"], likes: 100 }, { title: "NoSQL Database", description: "NoSQL database doesn't have tables", by: "菜鸟教程", url: "http://www.cainiaoya.com", tags: ["mongodb", "database", "NoSQL"], likes: 20, comments: [ { user:"user1", message: "My first comment", dateCreated: new Date(2013,11,10,2,35), like: 0 } ] } ])
要插入文档,您也可以使用db.post.save(document)。如果未在文档中指定_id,则save()方法将与insert()方法相同。如果指定_id,则它将替换save()方法中指定的包含_id的文档的整个数据。 -
insertOne()方法
如果只需要将一个文档插入到集合中,则可以使用此方法。语法>db.COLLECTION_NAME.insertOne(document)
示例下面的示例创建一个名为empDetails的新集合,并使用insertOne()方法插入一个文档。db.createCollection("empDetails")
db.empDetails.insertOne( { First_Name: "Radhika", Last_Name: "Sharma", Date_Of_Birth: "2019-12-26", e_mail: "radhika_sharma.123@gmail.com", phone: "9848022338" })
-
insertMany()方法
您可以使用insertMany()方法插入多个文档。对于此方法,您需要传递一个文档数组。以下示例使用insertMany()方法将三个不同的文档插入empDetails集合。db.empDetails.insertMany( [ { First_Name: "Radhika", Last_Name: "Sharma", Date_Of_Birth: "2019-09-26", e_mail: "radhika_sharma.123@qq.com", phone: "9000012345" }, { First_Name: "Rachel", Last_Name: "Christopher", Date_Of_Birth: "2018-02-16", e_mail: "Rachel_Christopher.123@qq.com", phone: "9000054321" }, { First_Name: "Fathima", Last_Name: "Sheik", Date_Of_Birth: "2016-02-16", e_mail: "Fathima_Sheik.123@qq.com", phone: "9000054321" } ] )