繁体   English   中英

我试图从mongodb获取单个数组值,但是当我尝试时,我得到了整个对象

[英]I am trying to get a single array value from mongodb, but when i try i get the whole object

1.我没有得到电子阵列中的项目,但整个文档

getItem(data){
    dbswap.findOne(
        { 'swap.Items.Electro.id':data.id, 
         'swap.Items.Electro.id':data.id },  function(err,item){
        if(err){
            return (err);
        }
        if(item){     
             console.log(item);                
        }

    });
} // EOF

这是我的架构
1.我只想获取我在Electro中创建的项目,我现在不想要整个对象。

var swapSchema = new mongoose.Schema({
 swap: {
     name: String,
     Items: {
         Electro: [
             {
                 name: String,
                 info: String,
                 price: Number,
                 dateCreated: Date,
                 category: String,
                 id: Number
              }
          ]
      }
  }
});

使用投影场:

如果要获取所有数组:

   dbswap.findOne(
    { 'swap.Items.Electro.id':data.id},
    { 'swap.Items.Electro' : 1}
   , function(err, obj){

将返回类似:

{
 _id: ObjectId("sdfsdfsdf"),
 Electro:[{....},{....}]
}

或者,如果只希望数组中与查询匹配的对象:

   dbswap.findOne(
    { 'swap.Items.Electro.id':data.id},
    { 'swap.Items.Electro.$' : 1}
   , function(err, obj){

将返回类似:

{
 _id: ObjectId("sdfsdfsdf"),
 Electro:{your match object}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM