sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB insertOne()

I MongoDB är db.collection.insertOne() metoden infogar ett enda dokument i en samling.

collection del är namnet på samlingen att infoga dokumentet i.

Exempel

Här är ett exempel på hur du infogar ett dokument i en samling som heter pets :

db.pets.insertOne( { 
    name: "Scratch", 
    type: "Cat" 
    } )

Resultat:

{
	"acknowledged" : true,
	"insertedId" : ObjectId("5fe2d15637b49e0faf1af214")
}

db.collection.insertOne() metod returnerar ett dokument som innehåller:

  • En boolesk acknowledged som true om operationen kördes med skrivproblem eller false om skrivproblem har inaktiverats.
  • Ett fält insertedId med _id värdet på det infogade dokumentet.

Om vi ​​nu använder db.collection.find() för att titta på samlingen kommer vi att se det nyligen tillagda dokumentet.

db.pets.find().pretty()

Resultat:

{
	"_id" : ObjectId("5fe2d15637b49e0faf1af214"),
	"name" : "Scratch",
	"type" : "Cat"
}

Jag använde också pretty() för att formatera dokumentet så att det är lättare att läsa.

I det här fallet är vårt dokument det enda i samlingen, och därför returnerades endast ett dokument.

Men om samlingen var stor kunde vi använda ID:t (som fanns i returdokumentet när vi gjorde insättningen) för att begränsa resultatet till just detta dokument.

db.pets.find({_id: ObjectId("5fe2d15637b49e0faf1af214")} ).pretty()

Resultat:

{
	"_id" : ObjectId("5fe2d15637b49e0faf1af214"),
	"name" : "Scratch",
	"type" : "Cat"
}

Vad händer om samlingen inte finns?

Om samlingen inte finns skapas den och dokumentet läggs till i den.

Om samlingen redan finns, läggs dokumentet helt enkelt till den.

När jag skapade det här exemplet fanns inte samlingen, så infogningsoperationen skapade den.

_id Fält

_id field är ett unikt identifierarfält i MongoDB.

Du kan ange ditt eget _id fältet i dokumentet. Om du gör det måste dess värde vara unikt i samlingen. Detta beror på att ditt _id fältet kommer att användas som den unika identifieraren för dokumentet.

Här är ett exempel på hur du infogar ett dokument med sin egen _id fältet.

db.pets.insertOne( { 
    _id: 1,
    name: "Fetch", 
    type: "Dog" 
    } )

Resultat:

{ "acknowledged" : true, "insertedId" : 1 }

Låt oss nu titta på samlingen igen.

db.pets.find()

Resultat:

{ "_id" : ObjectId("5fe2d15637b49e0faf1af214"), "name" : "Scratch", "type" : "Cat" }
{ "_id" : 1, "name" : "Fetch", "type" : "Dog" }

Mer information

db.collection.insertOne() metoden accepterar också en writeConcern argument, som beskriver nivån på bekräftelse som begärs från MongoDB för skrivoperationer.

Se MongoDB-dokumentationen för db.collection.insertOne() för mer information.


  1. Mongodb Aggregation Framework | Gruppera över flera värden?

  2. MongoDB $lt Aggregation Pipeline Operator

  3. Hur får man Redis att välja LRU vräkningspolicy för endast några av nycklarna?

  4. En översikt över ACID-transaktioner med flera dokument i MongoDB och hur man använder dem