Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

179
Visualizações
¿Cómo agrego un documento a una colección completa existente?

Estoy creando una tienda electrónica con fines educativos y necesito gestionar los pedidos de un usuario. Un usuario tiene una cesta que se está llenando de productos. Si decide comprar otro producto, tengo que insertar un documento en la colección existente de la tarjeta.

Colección MongoDB actual:

 { "_id": { "$oid": "61f3d79c921000006000547d" }, "username": "mike", "products": {[ "number": "3", "name": "Honduras", "price": 7, "stock": 10, ]}, "status": "UNPAID" }

Al agregar otro producto, debe insertarse en la colección existente en el campo de productos.

Se espera que se vea como:

 { "_id": { "$oid": "61f3d79c921000006000547d" }, "username": "mike", "products": {[ "number": "3", "name": "Honduras", "price": 7, "stock": 10, ], [ "number": "4", "name": "India", "price": 10, "stock": 11, ]}, "status": "UNPAID" }

Estoy usando PHP para las operaciones de back-end. El guión que escribí es simple. Estoy buscando si existen pedidos con el nombre de usuario del usuario. Si existen, bloqueo el pedido actual y realizo las operaciones necesarias.

Creo que me falta algo en la sintaxis de la actualización para el propósito descrito anteriormente:

Guión PHP:

 if (isset($_POST['add'])){ // Ordered by name from URL $username = $_GET['username']; // Product info $name = $_POST['add']; // Finds the product selected from products $product = $collection -> findOne(array("name" => "$name")); // Serialize product to be added. $json = MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($product)); // Searching for order from certain user $collection = $db -> orders; $exists = $collection -> findOne(array("username" => "$username")); if (!is_null($exists)){ // The problem is here (maybe?) $exists->updateOne( array("products" => {}),array('$set'=>$json); ); }

¡Cualquier ayuda y sugerencia sería realmente apreciada!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Bueno, necesitas usar algo como a continuación

 db.collection.update( {find Condition}, {$push: {products : {key: value, key2: value 2}} )

Aquí el truco es push . Agrega un elemento a la matriz. Aquí el elemento es un objeto.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda