代码之家  ›  专栏  ›  技术社区  ›  Noel

MongoDB:从结果返回动态字段

  •  0
  • Noel  · 技术社区  · 4 年前

    考虑一个集合,

    MongoDB Enterprise rs0:PRIMARY> db.col.find({});
    { "_id" : 1, "height" : 150, "weight" : 60 }
    

    我想写一个函数,根据输入动态返回字段值。

    function getFieldValue(inputField){
        
        var resultDoc = db.col.findAndModify({
            query:{_id: 1 },
            update: {$inc:{[inputField]:1}},
            new:true
            });
        
        return resultDoc;
    }
    

    这将返回整个文档。如何仅返回作为输入传递的字段?

    MongoDB Enterprise rs0:PRIMARY> var x = getFieldValue("weight")
    MongoDB Enterprise rs0:PRIMARY> x
    61
    

    我试过了 resultDoc.[inputField] ,但这会导致语法错误。

    1 回复  |  直到 4 年前
        1
  •  1
  •   keja    4 年前

    你不需要这个点 resultDoc.[inputField] 是的 resultDoc[inputField] .