Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 嵌入文档(mongoDB)中少于_Database_Mongodb_Nosql_Mongodb Query - Fatal编程技术网

Database 嵌入文档(mongoDB)中少于

Database 嵌入文档(mongoDB)中少于,database,mongodb,nosql,mongodb-query,Database,Mongodb,Nosql,Mongodb Query,下午好,我怎么能在我收藏的所有文件中找到200以下的“Precios” 我正在尝试使用以下查询: db.tienda.find ( { "Productos.Precio": { $lte: 200 } } ) 我的文件结构如下: use tienda db.tienda.insert( [ { "Codigo": 1, "Nombre": "Fabrica comida", "Productos": [ { "Codigo": "C1", "Nombre": "Papitas",

下午好,我怎么能在我收藏的所有文件中找到200以下的“Precios”

我正在尝试使用以下查询:

db.tienda.find ( { "Productos.Precio": { $lte: 200 } } )
我的文件结构如下:

use tienda

db.tienda.insert( [
{ 
 "Codigo": 1, "Nombre": "Fabrica comida", 
 "Productos": [ { "Codigo": "C1", "Nombre": "Papitas", "Precio": 1.20 }, { 
 "Codigo": "C2", "Nombre": "Perro caliente", "Precio": 3.10 }, { "Codigo": 
 "C3", "Nombre": "Hamburguesa", "Precio": 4 }, { "Codigo": "C4", "Nombre": 
 "Pizza", "Precio": 2.60 }, { "Codigo": "C5", "Nombre": "Malteada", 
 "Precio": 3 } ] 
},
{ 
 "Codigo": 2, "Nombre": "Tecnologia", 
 "Productos": [ { "Codigo": "T1", "Nombre": "Producto 8", "Precio": 300 }, { 
 "Codigo": "T2", "Nombre": "Smart TV", "Precio": 1200 }, { "Codigo": "T3", 
 "Nombre": "Teatro en casa", "Precio": 250 }, { "Codigo": "T4", "Nombre": 
 "Laptop", "Precio": 560 }, { "Codigo": "T5", "Nombre": "DVD", "Precio": 160 
 } ] 
},
{ 
 "Codigo": 3, "Nombre": "Deportes", 
 "Productos": [ { "Codigo": "D1", "Nombre": "Balon de futbol", "Precio": 20 
 }, { "Codigo": "D2", "Nombre": "Bate de baseball", "Precio": 49.99 }, { 
 "Codigo": "D3", "Nombre": "Canilleras", "Precio": 7.80 }, { "Codigo": "D4", 
 "Nombre": "Equipo de buceo", "Precio": 650 }, { "Codigo": "D5", "Nombre": 
 "Raqueta de tenis", "Precio": 25.50 } ] 
},
{ 
 "Codigo": 4, "Nombre": "Muebles", 
 "Productos": [ { "Codigo": "M1", "Nombre": "Armario", "Precio": 330 }, { 
 "Codigo": "M2", "Nombre": "Mesa de centro", "Precio": 60 }, { "Codigo": 
 "M3", "Nombre": "Comedor", "Precio": 1090 }, { "Codigo": "M4", "Nombre": 
 "Sala-Comedor", "Precio": 860 }, { "Codigo": "M5", "Nombre": "Lampara", 
 "Precio": 40 } ] 
},
{ 
 "Codigo": 5, "Nombre": "Hobbies", 
 "Productos": [ { "Codigo": "H1", "Nombre": "Mesa de hockey", "Precio": 320 
 }, { "Codigo": "H2", "Nombre": "Mesa de ping-pong", "Precio": 610 }, { 
 "Codigo": "H3", "Nombre": "Mesa de billar", "Precio": 2400 }, { "Codigo": 
 "H4", "Nombre": "Consola de videojuegos", "Precio": 220 }, { "Codigo": 
 "H5", "Nombre": "Mesa de poker", "Precio": 1650 } ] 
}
] )

知道执行查询的方式吗?

您可以使用聚合框架指定嵌套数组的条件:

db.tienda.aggregate([
   {
      $project: {
         Nombre: 1,
         Codigo: 1,
         Productos: {
            $filter: {
               input: "$Productos",
               as: "p",
               cond: { $lte: [ "$$p.Precio", 200 ] }
            }
         }
      }
   }
])