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(代码);});”您能修改上述问题还是创建一个新问题。由于反应迟迟,很难推断评论的变化,周末我很忙