我想更新地址内部json中的新键和值。我试过但我无法更新现有对象中的新键和值。
var mongodb=require("mongodb");
var mongoclient=mongodb.MongoClient;
var url="mongodb://localhost:27017/details";
mongoclient.connect(url,function(err,db)
{
if(err)
{
console.log("unable to connect database");
}
else
{
console.log("details database connected successfully");
var collection=db.collection("users");
collection.update({"name":"naranyamoorthy"}, {$addtoset: {"address[country]":"USA"}},function(err,result)
{
if(err)
{
console.log("not updated");
}
else
{
console.log("updated succesfully");
console.log();
db.close();
}
});
}
});
JSONFILE包含:
{
"_id" : ObjectId("58956389362992d7976510d4"),
"name" : "naranyamoorthy",
"age" : 21,
"subject" : [
"Bootstrap",
"node.js",
"j2ee",
"javascript"
],
"address" : {
"city" : "Afganistan",
"state" : "tamilnadu",
"pincode" : "12352"
}
}
我需要:
{
"_id" : ObjectId("58956389362992d7976510d4"),
"name" : "naranyamoorthy",
"age" : 21,
"subject" : [
"Bootstrap",
"node.js",
"j2ee",
"javascript"
],
"address" : {
"city" : "chennai",
"state" : "tamilnadu",
"pincode" : "12352",
"country":"India"
}
}
答案 0 :(得分:0)
您的查询不正确,如果您要设置内部地址的国家/地区,请使用address.country
代替address[country]
。以下是更正的查询:
var mongodb=require("mongodb");
var mongoclient=mongodb.MongoClient;
var url="mongodb://localhost:27017/details";
mongoclient.connect(url,function(err,db)
{
if(err)
{
console.log("unable to connect database");
}
else
{
console.log("details database connected successfully");
var collection=db.collection("users");
collection.update({"name":"naranyamoorthy"}, {$set:{"address.country":"USA"}},function(err,result)
{
if(err)
{
console.log("not updated");
}
else
{
console.log("updated succesfully");
console.log();
db.close();
}
});
}
});