Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
Javascript MongoDB通过动态查询第n个元素来获取数据集合_Javascript_Meteor - Fatal编程技术网

Javascript MongoDB通过动态查询第n个元素来获取数据集合

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" }); *****新数据***

我有一个动态的票证状态堆栈。其中,每个票证可以处于状态“正在处理中”,并且具有不同的“this.statusStack.currentStatus”值

下一个代码(不起作用)试图解释我要做什么

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代码:

  • 首先获取数组元素位置

    pos=statusStack.currentStatus

  • 然后,您可以使用pos(int)变量来构建查询文档

    var query=tojson(“{”statusStack.stack.'+pos'+'.name:“进程中”}”)


  • 在“查找”中使用该查询文档。

    您能否提供票证收集的示例文档以及您需要的更多说明。我试图避免查询所有我不需要的票证。如果我按照你说的做,我将检索所有票证,然后迭代只获取我想要的票证
    var tickets=tickets.find({driverAsigned:Meteor.userId()})
    tickets.forEach(函数(ticket){if(ticket.statusStack.stack[ticket.statusStack.currentStatus].name==“正在处理中”){//Do my want})我想有点同意…查看聚合框架,看看您是否找到了使用它的方法。聚合框架提供了许多我们可以使用的额外内容。