【问题标题】:Querying documents into one specific property in MongoDB将文档查询到 MongoDB 中的一个特定属性
【发布时间】:2022-06-12 02:28:45
【问题描述】:

我想查询“doc”中的所有“doc”属性,就像一个嵌套的。我想你可以从下面的代码中进一步理解我想要解释的内容:

mongoose.connect("mongodb://127.0.0.1:27017/stationDB");

const docSchema = mongoose.Schema({
  naturka: String,
  address: String,
  coefficient: String,
  wheel: String,
  weight: Number
})

const stockSchema = mongoose.Schema({
  rollingStockNumber: String,
  docs: [docSchema]
});


const Doc = mongoose.model('Doc', docSchema);
const Stock = mongoose.model('Stock', stockSchema);

let doc;
  for(i=0; i<naturkaMinifiedArrayReady.length; i++){
    const doc = new Doc({
      naturka: naturkaMinifiedArrayReady[i],
      address: arrayOfWayPlanForm[i],
      coefficient: valueOfCarLength[i],
      wheel: numberOfWheels[i],
      weight: valueOfCarWeight[i]
    });
    docs = doc
  };

  const stock = new Stock({
    rollingStockNumber: rollingStock,
    docs: docs
  });
  stock.save((err) => {
    if (err) {
      res.redirect('/')
    }
  });

我已经插入了 8 个文档,但只返回了你看到的最后一个文档:

{ _id: new ObjectId("62a1ac800d9d39966878ebb8"), rollingStockNumber: '922698012567076507200129101700057022060000000', docs: [ { naturka: '08 94331444 0271 030 72240 00300 0012 0 0 0 0 01/00 96 04 105 0200 OXP', address: 'Toshkent', coefficient: '1.05', wheel: '4', weight: 50, _id: new ObjectId("62a1ac800d9d39966878ebb7") } ], __v: 0 } 

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    用 let 定义的 doc 是一个数组,但是你用 =.如果你用push把数据加到数组中,你的问题就解决了。

    let docs = [];
      for(i=0; i<naturkaMinifiedArrayReady.length; i++){
        const doc = new Doc({
          naturka: naturkaMinifiedArrayReady[i],
          address: arrayOfWayPlanForm[i],
          coefficient: valueOfCarLength[i],
          wheel: numberOfWheels[i],
          weight: valueOfCarWeight[i]
        });
        docs.push(doc)
      };
    

    【讨论】:

    • 谢谢,兄弟,还有一个问题。如何仅访问“地址”属性? “常量地址 = foundStocks.map((stock) => stock.docs.address);”不起作用(
    • 库存中的doc也是一个数组,所以你也需要for in。但是你不需要用地图一一做。您可以查看 Mongoose 文档中的查询数组 'in' 运算符属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 2013-09-10
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    相关资源
    最近更新 更多