English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой главе мы узнаем, как вставлять документы в набор 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: "Основной курс", ... url: "https://ru.oldtoolbag.com", ... tags: ['mongodb', 'база данных', 'NoSQL'], ... likes: 100 ... }) WriteResult({ "nInserted" : 1 }) >
Это имя коллекции, созданной нами в предыдущей главе mycol . Если не указан параметр _id в вставляемом документе, MongoDB分配 ему уникальный ObjectId.
Если в базе данных не существует этой коллекции, MongoDB создаст её и вставит документ в неё.
_id является 12-битным шестнадцатеричным числом и уникален для каждого документа в集合е. 12 байт разбиты следующим образом:
_id: ObjectId(4 байта временной метки, 3 байта идентификатора машины, 2 байта идентификатора процесса, 3 байта инкрементатора)
Можно передать массив документов в метод insert() следующим образом:
> db.createCollection("post") > db.post.insert([ { title: "Обзор MongoDB", description: "MongoDB не является SQL базой данных", by: "Основной курс", url: "http://ru.oldtoolbag.com", tags: ["mongodb", "база данных", "NoSQL"], likes: 100 } { title: "NoSQL Database", description: "NoSQL базы данных не имеют таблиц", by: "Основной курс", url: "http://ru.oldtoolbag.com", tags: ["mongodb", "база данных", "NoSQL"], likes: 20, comments: [ { user:"пользователь1", message: "Мой первый комментарий", 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() такая:
> 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: "[email protected]", phone: "9848022338" } { "acknowledged": true, "insertedId": ObjectId("5dd62b4070fb13eec3963bea") } >
Вы можете использовать метод insertMany() для вставки нескольких документов. Для этого метода вам нужно передать массив документов.
Ниже приведен пример использования метода insertMany() для вставки трех различных документов в коллекцию empDetails.
> db.empDetails.insertMany( [ { First_Name: "Radhika", Last_Name: "Sharma", Date_Of_Birth: "1995-09-26", e_mail: "[email protected]", phone: "9000012345" } { First_Name: "Rachel", Last_Name: "Christopher" Date_Of_Birth: "1990-02-16", e_mail: "[email protected]", phone: "9000054321" } { First_Name: "Fathima", Last_Name: "Sheik", Date_Of_Birth: "1990-02-16", e_mail: "[email protected]", phone: "9000054321" } ] ) { "acknowledged": true, "insertedIds": [ ObjectId("5dd631f270fb13eec3963bed"), ObjectId("5dd631f270fb13eec3963bee"), ObjectId("5dd631f270fb13eec3963bef") ] } >