Mongo DB数组将字符串更改为浮点数

编程入门 行业动态 更新时间:2024-10-26 08:21:02
本文介绍了Mongo DB数组将字符串更改为浮点数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

现在,我可以找到"versions.0.content.axdducvoxb" 带引号,但我不知道该怎么写 parseFloat(data.versions.0.content.axdducvoxb)

Now, I can find 'versions.0.content.axdducvoxb' with quotes but i don't know how I have to write parseFloat(data.versions.0.content.axdducvoxb)

我尝试在MongoDB中使用代码进行字符串->数字转换.我这样做是为了使用聚合

I try to use code for string -> number conversions in MongoDB. I do this for using aggregate

有效:

db.documents.find().forEach(function(data) { db.documents.update({_id:data._id},{$set:{axdducvoxb:parseFloat(data.axdducvoxb)}}); })

我有带有版本的数组,它不起作用:

I have array with versions, and it doesn't work:

> db.documents.find().forEach(function(data) { > db.documents.update({_id:data._id},{$set:{versions.0.content.axdducvoxb:parseFloat(data.versions.0.content.axdducvoxb)}}); > })

我看到这样的错误:27 14:14:58.543 SyntaxError:意外的数字

I see error like this: 27 14:14:58.543 SyntaxError: Unexpected number

请告诉我我该怎么做)))

Please tell me what I have to do )))

第一个答案不起作用((((

如果我纠正查询并尝试:

If I correct query and try it:

db.documents.find().forEach(function(data) { db.documents.update({_id:data._id},{$set:{"versions.0.content.axdducvoxb":parseFloat(data.versions.0.content.axdducvoxb)}}}); }) Mon Mar 31 13:23:45.474 SyntaxError: Unexpected number

如果我为两个索引都加上引号,则会清理基数:

If I add quotes for both indexes I clean the base:

db.documents.find().forEach(function(data) { db.documents.update({_id:data._id},{$set:{"versions.0.content.axdducvoxb":parseFloat("data.versions.0.content.axdducvoxb")}}}); })

我需要将所有带有数字的字符串转换为float)))

I need to transform all strings with numbers to float )))

我做到了!!!可能有人需要同样的东西....

我在mongo DB控制台中用于String到Float转换的代码(4个示例):

db.documents.find({ 'fwtweaeeba' : {$exists : true}}).forEach( function(obj) { obj.fwtweaeeba = parseFloat( obj.fwtweaeeba ); db.documents.save(obj); } ); db.documents.find({ 'versions.0.content.fwtweaeeba' : {$exists : true}}).forEach( function(obj) { obj.versions[0].content.fwtweaeeba = parseFloat( obj.versions[0].content.fwtweaeeba ); db.documents.save(obj); } ); db.documents.find({ 'versions.1.content.fwtweaeeba' : {$exists : true}}).forEach( function(obj) { obj.versions[1].content.fwtweaeeba = parseFloat( obj.versions[1].content.fwtweaeeba ); db.documents.save(obj); } ); db.documents.find({ 'versions.2.content.fwtweaeeba' : {$exists : true}}).forEach( function(obj) { obj.versions[2].content.fwtweaeeba = parseFloat( obj.versions[2].content.fwtweaeeba ); db.documents.save(obj); } );

PHP脚本将转换字符串浮动到集合中(我需要的所有字符串):

<?php $fieldNamesToFloat = array( "atkswlntfd", "auwbsjqzir", "avqrnjzbgd", "awquatbduv", "axdducvoxb", "bkoldugcrp", "bzccjslewi", "cclwyezydc", "covfctuuhi", "dingrnyknr", "dkfknpzsnt", "dqetuhllse", "duorlxiqbw", "eayoicezsh", "esrfffruoy", "ewdunlkxue", "ewfshjnome", "exakqiudxg", "fabdcybqxu", "fsplxunmaf", "fubxmogyam", "fuzqrnwsks", "fwtweaeeba", "fybnnlojgb", "gdjheqrqcx", "gpupstzwjd", "gxilphzzcu", "hbahrruokf", "hbqnleclwp", "hchpoxxnwz", "hmorfnbfvf", "hqatnzynxb", "hrqssioxdv", "hvscavwupe", "hyzlbtnxil", "idzxqjoxgd", "ikxsvguboy", "ipjpwkbqnt", "izqighabwk", "jncncbplme", "jxkspszlrc", "kekarveuhb", "klyoglzriu", "kmvuelmdwe", "knxzfjwnax", "kqfhjboecc", "kqhojbwvmo", "lchogmhynm", "lmuwyeqvph", "lvcdbhisbx", "mijczjeqeo", "mpxzquzcat", "mqqoetqued", "muktdrzphw", "nceszojuvt", "nypnjqgxop", "ojklibfieg", "padotysmxb", "pidwyruvfq", "pkeymzxsrj", "pnjtfvzwiv", "pqjnpoxmcx", "pyexnkjujx", "qfeqdvzssg", "qidslfqnwn", "qvjszkahdc", "qzoriqedoh", "rjicuyfsmt", "rqenalbuko", "rxkwogbxwu", "sbqqabqukn", "skhgbmucrp", "slewjrvgjn", "tidjarsatz", "tmbagkmlgb", "uqcdessbeu", "vacoxpronz", "vdjfydjrpa", "vktxndqyhm", "vmfqvfjptu", "vofeebpgsc", "wewmtafjvk", "wfqdcsrltv", "wzmbxalguv", "xjllpdyool", "xjxbwynytx", "xmirihwycl", "xxrsnjlmfv", "ybgdjpexth", "ymkmkuxlrq", "yneoycjloj", "yogujlfvpb", "zahigfmqxb", "znqqhqkjte", "zyztudtziu" ); $m = new MongoClient(); $db = $m->foo_data; $collection = new MongoCollection($db, 'documents'); foreach($fieldNamesToFloat as $fieldName){ foreach($db->documents->find(array("type" => "chair")) as $document){ $db->documents->update( array('_id' => $document[_id]), array( '$set' => array( 'versions.0.content.'.$fieldName => (float)$document['versions'][0]['content'][$fieldName], 'versions.1.content.'.$fieldName => (float)$document['versions'][1]['content'][$fieldName], 'versions.2.content.'.$fieldName => (float)$document['versions'][2]['content'][$fieldName], $fieldName => (float)$document[$fieldName] ) ), array('$multi' => true) ); } } echo "well done"; ?>

推荐答案

您应尝试将$ set值包装在引号中,如下所示:

You should try wrapping $set value in quotes as shown below:

"versions.0.content.axdducvoxb":parseFloat(data.versions.0.content.axdducvoxb)

最终结果:

db.documents.find().forEach(function(data) { db.documents.update({_id:data._id},{$set:"versions.0.content.axdducvoxb":parseFloat(data.versions.0.content.axdducvoxb)}}); })

每当使用此点符号时,都需要将键用引号引起来,如文档(强调):

Whenever you use this dot notation, you are required to wrap the key in quotes as mentioned in the documentation (emphasis added):

要通过从零开始的索引位置访问数组的元素,请将数组名称与点(.)和从零开始的索引位置进行连接,并用引号引起来

更多推荐

Mongo DB数组将字符串更改为浮点数

本文发布于:2023-11-16 06:18:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1601750.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组   字符串   浮点数   Mongo   DB

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!