Javascript MongoDB通过动态查询第n个元素来获取数据集合
我有一个动态的票证状态堆栈。其中,每个票证可以处于状态“正在处理中”,并且具有不同的“this.statusStack.currentStatus”值 下一个代码(不起作用)试图解释我要做什么Javascript MongoDB通过动态查询第n个元素来获取数据集合,javascript,meteor,Javascript,Meteor,我有一个动态的票证状态堆栈。其中,每个票证可以处于状态“正在处理中”,并且具有不同的“this.statusStack.currentStatus”值 下一个代码(不起作用)试图解释我要做什么 var tickets = Tickets.find({ driverAsigned: Meteor.userId(), 'statusStack.stack.(this.statusStack.currentStatus).name': "In Process" }); *****新数据***
var tickets = Tickets.find({
driverAsigned: Meteor.userId(),
'statusStack.stack.(this.statusStack.currentStatus).name': "In Process"
});
*****新数据******
我所说的“this.statusStack.currentStatus”是一个内部文档值,不是代码的变量
这是一张票的结构
{
......
"statusStack" : {
"stack" : [
{
"sortable" : false,
"removable" : false,
"order" : 0,
"name" : "Draft",
"customName" : "Draft",
"description" : "When the ticket has been created",
"color" : "#4d4d4d"
},
{
"sortable" : false,
"removable" : false,
"order" : 1,
"name" : "New",
"customName" : "New",
"description" : "When the ticket info has been updated",
"color" : "#f4f93e"
},
{
"sortable" : true,
"removable" : false,
"order" : 2,
"name" : "Assigned",
"customName" : "Assigned",
"description" : "When the ticket info has been asigned to a driver",
"color" : "#3e89f9"
},
{
"sortable" : true,
"removable" : false,
"order" : 3,
"name" : "In Process",
"customName" : "In Process",
"description" : "When the ticket has been created",
"color" : "#f0883c"
},
{
"sortable" : true,
"removable" : true,
"order" : 4,
"name" : "Frodo",
"customName" : "Blank",
"description" : "New Blank Status",
"color" : "#4d4d4d"
},
{
"sortable" : true,
"removable" : false,
"order" : 5,
"name" : "Resolved",
"customName" : "Resolved",
"description" : "When the Driver has resolved the Ticket",
"color" : "#42f93e"
},
{
"sortable" : false,
"removable" : false,
"order" : 6,
"name" : "Closed",
"customName" : "Closed",
"description" : "When the Admin has been closed the Ticket",
"color" : "#217b1f"
}
],
"currentStatus" : 5
},
......
}
Sudo代码:
在“查找”中使用该查询文档。您能否提供票证收集的示例文档以及您需要的更多说明。我试图避免查询所有我不需要的票证。如果我按照你说的做,我将检索所有票证,然后迭代只获取我想要的票证
var tickets=tickets.find({driverAsigned:Meteor.userId()})代码>tickets.forEach(函数(ticket){if(ticket.statusStack.stack[ticket.statusStack.currentStatus].name==“正在处理中”){//Do my want})代码>我想有点同意…查看聚合框架,看看您是否找到了使用它的方法。聚合框架提供了许多我们可以使用的额外内容。