查询两个数组字段并获取位置结果

时间:2015-10-27 10:54:37

标签: mongodb mongodb-query node-mongodb-native

我一直在尝试使用两阶段提交方法执行重要的更新操作。不幸的是,将在数组中更新的字段。但是同一个文档必须有一个pendingTransactions字段来存储当前的事务。根据{{​​3}},MongoDB不支持位置更新 如果查询文档中有两个数组字段。

有没有机会解决这种情况?


其他附加信息和'正确结果'在查询中使用两个数组字段

实际上我在查询文档中使用了第二个数组而不知道问题。它运作稳定。测试时,我遇到了另一个更新操作的问题。所以,第一个查询每次都能正确响应。

稳定部分如下所示。使用$ne运算符可以正常运行;
invoicespendingTransactions是数组字段

var query = { 
    _id: customer_id, 
    invoices: { $elemMatch: { 'year': 2015, 'month': 8 } },
    pendingTransactions: { $ne: transaction_id }        
}

Customers.findOne(filter, { 'invoices.$' }, function(err, customer){
    /* Positional operator $ works correct */
}

不稳定部分如下所示;

var query = { 
    _id: customer_id, 
    invoices: { $elemMatch: { 'year': 2015, 'month': 8 } },
    pendingTransactions: transaction_id
}   

Customers.findOne(filter, { 'invoices.$' }, function(err, customer){
    /* Positional operator $ doesn't work correct */
}

0 个答案:

没有答案