Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
MongoDb限制更新查询_Mongodb - Fatal编程技术网

MongoDb限制更新查询

MongoDb限制更新查询,mongodb,Mongodb,我想将支付类型Postpaid更改为Postpaid,并想限制该查询,为此,我编写了以下查询: db.subscribers.find({paymentType:"Postpaid"}).limit(3).forEach( function(doc) {db.collection.update( {paymentType:"Postpaid"}, {$set:{paymentType:"POSTPAID"}}, db.subscribe

我想将支付类型Postpaid更改为Postpaid,并想限制该查询,为此,我编写了以下查询:

db.subscribers.find({paymentType:"Postpaid"}).limit(3).forEach(
function(doc)
{db.collection.update(
{paymentType:"Postpaid"},
{$set:{paymentType:"POSTPAID"}},
db.subscribers.save(doc)
)})
它给出了以下输出,但没有任何变化:

Updated 1 existing record(s) in 3ms
Updated 0 record(s) in 1ms
Updated 1 existing record(s) in 2ms
Updated 0 record(s) in 1ms
Updated 1 existing record(s) in 2ms
Updated 0 record(s) in 1ms

该查询有什么问题,请有人帮忙?

无需进行更新查询,只需更新
文档中的值,并将其保存到同一集合中

db.subscribers.find({paymentType:"Postpaid"}).limit(3).forEach(function(doc) {
    doc.paymentType = "POSTPAID";
    db.subscribers.save(doc);
});
  • 第二个选项,执行更新查询

无需进行更新查询,只需更新
单据中的值
并保存到同一集合即可

db.subscribers.find({paymentType:"Postpaid"}).limit(3).forEach(function(doc) {
    doc.paymentType = "POSTPAID";
    db.subscribers.save(doc);
});
  • 第二个选项,执行更新查询

感谢您的回答,但在我的情况下,它不起作用,它为每条记录提供以下输出:版本中的美元($)前缀字段“$numberLong”。$numberLong”对存储无效。某些字段中可能有$符号,它不支持低于4.2的版本,您可以尝试第二个选项。第二个查询在我的情况下有效,即使是我的mongo版本4.4.2,非常感谢您的回答,但在我的情况下不起作用,它为每条记录提供以下输出:美元($)版本中的前缀字段“$numberLong”。$numberLong”对存储无效。可能某些字段中有$sign,在低于4.2的版本中它将不支持。您可以尝试第二个选项。第二个查询在我的情况下有效,即使是我的mongo版本4.4.2,非常感谢