Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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
Node.js 在Mongoose上按相同架构名称映射其他集合_Node.js_Mongodb_Collections_Mongoose - Fatal编程技术网

Node.js 在Mongoose上按相同架构名称映射其他集合

Node.js 在Mongoose上按相同架构名称映射其他集合,node.js,mongodb,collections,mongoose,Node.js,Mongodb,Collections,Mongoose,发动机集合 var EngineSchema = new mongoose.Schema({ name: String, GF2: String, GF3: String, GF4: String, ll98: String, ll01: String, ll04: String }); var OilSchema = new mongoose.Schema({ name: String, GF2: String,

发动机集合

var EngineSchema = new mongoose.Schema({

    name: String,
    GF2: String,
    GF3: String,
    GF4: String,
    ll98: String,
    ll01: String,
    ll04: String

});
var OilSchema = new mongoose.Schema({

    name: String,
    GF2: String,
    GF3: String,
    GF4: String,
    ll98: String,
    ll01: String,
    ll04: String

});
集油

var EngineSchema = new mongoose.Schema({

    name: String,
    GF2: String,
    GF3: String,
    GF4: String,
    ll98: String,
    ll01: String,
    ll04: String

});
var OilSchema = new mongoose.Schema({

    name: String,
    GF2: String,
    GF3: String,
    GF4: String,
    ll98: String,
    ll01: String,
    ll04: String

});
我做的很简单

引擎数据库

{id:57d9604b7ecbc0029a3aad3c, 名称:“N54 B30A”, ll01:‘1’, ll01fe:'1', ll04:‘1’, __v:0}

油数据库

[{id:57d9614265e6c402a2c09990,名称:'EDGE',ll04:'1',[v:0}

{id:57D98E12AC05505CFD15AAE, 名称:“SYNTEC”, GF2:‘1’, GF3:‘1’, GF4:‘1’, __v:0}]

如果我有N54 B30A,它需要关于ll98、ll01、ll04的分类

边缘产品只有一个关于分类ll04

总的来说,我选择了具有ll04分类的“N54 B30A”,所以我想显示具有ll04分类的内容

‘N54 B30A’->ll04 ‘边缘’->ll04

ll04映射

选择N54 B30A->显示边缘

我的代码很简单,但没有执行

Engine.findOne({name: 'N54 B30A'}, {_id: 0, name: 0, __v: 0}, function(err, engine) {
    var result = Object.keys(engine.toObject());//[ 'll01', 'll01fe', 'll04' ]
    Oil.findOne({result[2] : 1},function (err, oil) {
        console.log(oil)
    });
})
更多问题 我想搜索多种类型的属性(ll01、ll01fe、ll04),例如

但是我不知道如何添加像{ll01:1}这样的项,而不是添加{ll01le:1}和{ll04:1} 我试着编码

我的代码

Engine.findOne({name: 'N54 B30A'}, {_id: 0, name: 0, __v: 0}, function (err, engine) {
    var result = Object.keys(engine.toObject());//[ 'll01', 'll01fe', 'll04' ]
    var Json = [];

    result.forEach(function (item) {
    var code = {};
    code[item] =1;
        Json.push(code);

    });
    console.log(Json);


    Oil.find({$or: Json}, function (err, oil) {
        console.log(oil)
    });
})

我不是有用的javascript,所以我只凭自己的想法。这是否正确?

您不能将值作为
{result[2]:1}
分配给JSON。将您的代码更改为此

Engine.findOne({name: 'N54 B30A'}, {_id: 0, name: 0, __v: 0}, function(err, engine) {
    var result = Object.keys(engine.toObject());//[ 'll01', 'll01fe', 'll04' ]
    var oilFindQuery = {};
    oilFindQuery[result[2]] = 1;

    //or query 
    var orQuery = [];
    result.forEach(function (item) {
        var queryItem = {};
        queryItem[item] = 1
        orQuery.push(queryItem);
    });

    //oilFindQuery = {$or: orQuery};

    Oil.findOne(oilFindQuery, function (err, oil) {
        console.log(oil)
    });
})

不能将值作为
{result[2]:1}
分配给JSON。将您的代码更改为此

Engine.findOne({name: 'N54 B30A'}, {_id: 0, name: 0, __v: 0}, function(err, engine) {
    var result = Object.keys(engine.toObject());//[ 'll01', 'll01fe', 'll04' ]
    var oilFindQuery = {};
    oilFindQuery[result[2]] = 1;

    //or query 
    var orQuery = [];
    result.forEach(function (item) {
        var queryItem = {};
        queryItem[item] = 1
        orQuery.push(queryItem);
    });

    //oilFindQuery = {$or: orQuery};

    Oil.findOne(oilFindQuery, function (err, oil) {
        console.log(oil)
    });
})

你能更详细地描述一下需求吗。无法理解您想要实现的目标OK。我写了详细内容。我的回答有用吗?如果有,请投票并接受。你能更详细地描述一下要求吗。无法理解您想要实现的目标OK。我写了细节。我的回答有用吗?如果有,请投票并接受。我能再问一个问题吗?如果要进行查找({$or:{ll01:1},{ll04:1})的查询。我尝试了“oilFindQuery[result[0]]=1”,oilFindQuery[result[2]]=1,但它是{ll01:1,ll04:1}我想搜索ll01:1产品和ll04:1产品如果你想做和
查询,那么
{ll01:1,ll04:1}
就可以了,但是使用
查询时,您必须更改查询的格式,因此我制作了代码我不是有用的javascript,因此您可以检查我的代码吗?是这样吗?“var result=Object.keys(engine.toObject());//['ll01','ll01fe','ll04']var Json=[];result.forEach(函数(项){var code={};code[item]=1;Json.push(代码);});”您能修改上述问题还是创建一个新问题。很难推断评论的变化,因为回复太晚,忙了一周,我能再问一个问题吗?如果要进行查找({$or:{ll01:1},{ll04:1})的查询。我尝试了“oilFindQuery[result[0]]=1”,oilFindQuery[result[2]]=1,但它是{ll01:1,ll04:1}我想搜索ll01:1产品和ll04:1产品如果你想做和
查询,那么
{ll01:1,ll04:1}
就可以了,但是使用
查询时,您必须更改查询的格式,因此我制作了代码我不是有用的javascript,因此您可以检查我的代码吗?是这样吗?“var result=Object.keys(engine.toObject());//['ll01','ll01fe','ll04']var Json=[];result.forEach(函数(项){var code={};code[item]=1;Json.push(代码);});”您能修改上述问题还是创建一个新问题。由于反应迟迟,很难推断评论的变化,周末我很忙