我是Mongodb的新手。我完全不知道如何更新它。我有一个名为price的字段。我需要通过从我的价格字段中删除USD来更新它。下面是一个例子.....但是620 (因不同的物品而异)必须留在那里。任何人都可以帮忙。任何帮助都会非常值得。
{
"_id" : 1234,
"price" :"620.0,USD",
"description" : "Awesome"
}
到
{
"_id" : 1234,
"price" :"620.0",
"description" : "Awesome"
}
提前谢谢.......
答案 0 :(得分:1)
这不可能直接通过mongo查询,所以可能需要使用java脚本,所以下面的代码将解决你的问题
db.collectionName.find({
"_id": 1234,
price: {
$regex: '^[
0-9
]',
$options: 'i'
}
}).forEach(function(doc){
varupdatedPrice=doc.price.replace(/[
^0-9\.
]+/g,
"");
db.price.update({
"_id": doc._id
},
{
"$set": {
"price": updatedPrice
}
});
})
答案 1 :(得分:1)
我自己找到了解决方案。
while(cursor.hasNext())
{
BasicDBObject doc=(BasicDBObject) cursor.next();
String s=doc.getString("product_price").split("[,]")[0];
String s1=doc.getString("product_img").split("[,]")[0];
Double price=Double.parseDouble(s);
doc.append("$set",new BasicDBObject().append("product_price", price).append("product_img",s1));
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("product_price", price).append("product_img",s1));
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("product_id", doc.getString("product_id"));
System.out.println(doc.getString("product_id"));
coll.updateMulti(searchQuery, updateQuery);
// System.exit(1);
System.out.println("completed");
通过使用上面的代码我解决了我的问题... Thanku