如果我将我的“查询”添加到workflow.find {},则不会得到响应。
我认为我的子文档命名不正确。
我需要能够深入研究“工作流和组件”级别。
我尝试过删除文本。部分,甚至直接调用名称字段,但不确定我缺少什么。
router.get('/findcomponent', (req, res) =>{
const workflow = require('../models/WorkFlowOnly.js')
const id = req.params.id
const query = {'texto.Workflow.Name' : 'Test WE'} //works
workflow.find(query, function(err, data) { console.log(data) /* ... */});//works
})
带有已过滤结果的控制台日志
{ _id: 5c8fbe0ed6dd2e0f6c5f7990,
texto:
{ Workflow:
{ ID: 'Workflow-STARK-ahinson1-2019.03.03-20.14.43-VYHP',
LocalCachePath: 'Z:\\MAITest\\Cache',
SharedCachePath: null,
Name: 'Test WE',
Desc: 'I\'m testing this',
Components: [Object] } },
Components: [] }
Data
未定义查询时从控制台记录日志:
[ { _id: 5c8fad698481aa2a881f9caa,
texto: { Workflow: [Object] },
Components: [] },
{ _id: 5c8fbe0ed6dd2e0f6c5f7990,
texto: { Workflow: [Object] },
Components: [] } ]
更新:确实很好,谢谢,当我尝试挖掘组件级别时遇到了类似的问题。 这是我正在尝试的新查询代码,我已经尝试了其他一些变化,这是两个。
const query = {'texto.Workflow.Components.Component.0.ID' : 'ImageReaderComponentGRQL'}
const query = {'texto.Workflow.Components.Component.Component.0.ID' : 'ImageReaderComponentGRQL'}
const query = {'texto.Workflow.Components.Component.0.ID' : 'ImageReaderComponentGRQL2'} //THIS WORKS -----UPDATED
下面是测试记录的mongodb列表视图的副本/粘贴。
id:5c8fbe0ed6dd2e0f6c5f7990
texto:Object
Workflow:Object
ID:"Workflow-2019.03.03-20.14.43-VYHP"
LocalCachePath:"Z:\MAITest\Cache"
SharedCachePath:null
Name:"Test WE"
Desc:"I'm testing shit so fuck off"
Components:Object
Component:Array
0:Object
ID:"ReaderComponentGRQL2"
Type:"ReaderComponent"
Name:"ReaderU08"
Desc:null
Properties:Object
InputPorts:null
OutputPorts:Object
1:Object
2:Object
答案 0 :(得分:0)
我认为您的mongo query
不正确
const query = {'texto.Workflow.Name' : 'Test WF'} // here
workflow.find(query, function(err, data) { console.log(data) /* ... */});
})
答案 1 :(得分:0)
尝试如下使用:
router.get('/findcomponent', (req, res) =>{
const workflow = require('../models/WorkFlowOnly.js')
const id = req.params.id
// const query = "['texto.Workflow.Name' : 'Test WF'}"
const query = { 'texto.Workflow.$.Name' : 'Test WF' }
workflow.find(query, function(err, data) {
console.log(data) /* ... */
});
})
或选择不使用const query
就可以做到这一点:
workflow.find({'texto.Workflow.Name': "TEST WF"}, function(err, data) {
console.log(data) /* ... */
});
})
答案 2 :(得分:0)
谢谢大家的帮助,这就是我的想法 该查询适用于我的数组子文档
const query = {'texto.Workflow.Components.Component.0.ID' : 'ImageReaderComponent'}