【问题标题】:How to find by nested property in mongoose如何通过猫鼬中的嵌套属性查找
【发布时间】:2019-07-12 03:47:14
【问题描述】:

我试图通过嵌套属性在我的数据库中查找一个对象,但我似乎找不到任何方法。我的架构如下,我已经展示了我是如何尝试查询的。

var stations = {
    Alpha: Number,
    Beta: Number
};
var systemSchema = new mongoose.Schema({
    name: String,
    location: String,
    nodes: {
        main: stations,
        secondary: stations,
        tertiary: stations
    }
});

var System = mongoose.model("System", systemSchema);

System.findOne({ nodes: { main: {Alpha: 23000}}}, function(err, system){
    if(err){console.log(err);}
    else{console.log(system);}
});

每次我运行这个,什么都没有返回。我期望我的数据库中会返回相应的对象。

【问题讨论】:

    标签: javascript mongoose mongoose-schema


    【解决方案1】:

    改变这个

    System.findOne({ nodes: { main: {Alpha: 23000}}}, function(err, system){
     if(err){console.log(err);}
      else{console.log(system);}
    });
    

     System.findOne({ 'nodes.main.Alpha': 23000}, function(err, system){
       if(err){console.log(err);}
       else{console.log(system);}
     });
    

    这会起作用

    【讨论】:

      【解决方案2】:

      您可以指定字符串形式的对象嵌套。

      System.findOne({ "nodes.main.Alpha": 23000 }, function(err, system) {
        if (err) {
          console.log(err);
        } else {
          console.log(system);
        }
      });
      

      这应该可以,现在无法验证,但我记得我在某处使用过这种方式。

      如果有帮助请告诉我..

      【讨论】:

        猜你喜欢
        • 2021-10-17
        • 2023-01-30
        • 1970-01-01
        • 2022-01-26
        • 2019-07-20
        • 2018-02-02
        • 2013-05-06
        • 2021-05-06
        • 2021-03-23
        相关资源
        最近更新 更多