Latest web development tutorials

documento MongoDB é atualizado

MongoDB usando o métodosave () update ()e atualizar a coleção de documentos. Vamos dar uma olhada detalhada no pedido e que a diferença entre as duas funções.


método update ()

update () método é usado para atualizar um documento existente. Sintaxe é como se segue:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

Parâmetro Descrição:

  • query: critérios de consulta de atualização, semelhante à consulta de actualização sql onde a traseira interna.
  • objetos de atualização e alguns dos operadores mais recentes (como o $, $ inc ...), etc., também pode ser entendida como um conjunto de volta dentro da consulta SQL UPDATE: update
  • upsert: opcional, ou seja, este argumento é que, se não houver atualização de registro, é inserido objNew, verdadeiro para inserir, o padrão é falso, não inserido.
  • multi: Opcional, padrão MongoDB é falso, apenas para encontrar o primeiro registro para atualizar, se este argumento é verdadeiro, de acordo com as condições de colocar para fora muitos registros verificar todas as atualizações.
  • writeConcern: exceção de nível opcional é lançada.

Exemplos

Nós inserir o seguinte col coleta de dados:

>db.col.insert({
    title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '本教程',
    url: 'http://www.w3big.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

Então nós temos que atualizar o título pelo método update () (título):

>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })   # 输出信息
> db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "本教程",
        "url" : "http://www.w3big.com",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
>

Você pode ver o título (título) do original Update "MongoDB Tutorial" para "MongoDB."

A declaração acima irá modificar o documento encontrado na primeira, se você quiser editar o mesmo documento e muito mais, você precisa definir múltiplos parâmetro para true.

>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

salvar método ()

salvar () método, passando os documentos para substituir o documento existente. Sintaxe é como se segue:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

Parâmetro Descrição:

  • documento: os dados do documento.
  • writeConcern: exceção de nível opcional é lançada.

Exemplos

O exemplo a seguir que substituiu o _id como dados 56064f89ade2f21f36b03136 documento:

>db.col.save({
	"_id" : ObjectId("56064f89ade2f21f36b03136"),
    "title" : "MongoDB",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "w3big",
    "url" : "http://www.w3big.com",
    "tags" : [
            "mongodb",
            "NoSQL"
    ],
    "likes" : 110
})

Após a substituição for bem sucedida, nós podemos () comando para visualizar os dados após a substituição por find

>db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "w3big",
        "url" : "http://www.w3big.com",
        "tags" : [
                "mongodb",
                "NoSQL"
        ],
        "likes" : 110
}
> 

mais exemplos

Apenas atualizar o primeiro registro:

db.col.update ({ "contar": {$ gt: 1}}, {$ set: { "test2": "OK"}});

Atualizar todos:

db.col.update ({ "contar": {$ gt: 3}}, {$ set: { "test2": "OK"}}, false, true);

Adicionar apenas o primeiro:

db.col.update ({ "contar": {$ gt: 4}}, {$ set: { "test5": "OK"}}, verdadeiro, falso);

Adicionar todos acrescentou:

db.col.update ({ "contar": {$ gt: 5}}, {$ set: { "test5": "OK"}}, é verdade, true);

Atualizar todos:

db.col.update ({ "contar": {$ gt: 15}}, {$ inc: { "contagem": 1}}, false, true);

Apenas atualizar o primeiro registro:

db.col.update ({ "contar": {$ gt: 10}}, {$ inc: { "contagem": 1}}, falso, falso);