【发布时间】:2016-10-04 05:40:27
【问题描述】:
我正在尝试使用 updateOne 更新 mongoDB 中的记录,未更新的记录在数组中,并且所有字段都在更新,除了 country 的一个字段,我尝试使用 MongoChef 更新它(MongoDB for linux 的 GUI),但它也不起作用,如果我在 GUI 中使用 Edit 更新文档,那么该记录就可以在此之后更新。
我在 MongoChef 中尝试过以下查询
db.institutions.updateOne({
"campus": { "$elemMatch": { "_id": ObjectId("578500ef87e4c326183e520e")} },
"_id": ObjectId("57f25706762c06cb7d9422fc")
},
{
"$set" : { "campus.$.country" : "SS1"
}
});
只有国家/地区字段不更新如果我更新任何其他字段,它工作正常。
文档结构列在下面
{
"_id" : ObjectId("57f26824762c06cb7d982e37"),
"campus" : [
{
"_id" : ObjectId("578500ee87e4c326183e5201"),
"country" : "GB",
"coreId" : NumberInt(1),
"city" : "Norwich",
}
]
}
提前感谢任何帮助
【问题讨论】:
-
您可以给我们看一下您查询
db.institutions.findOne({ "_id": ObjectId("57f25706762c06cb7d9422fc") })时得到的文件吗? -
@chridam 我的查找查询是 db.institutions.find({ "campus.country" : "SS1", "_id" : ObjectId("57f26824762c06cb7d982e37") }, { "campus": true } ); {“_id”:ObjectId(“57f26824762c06cb7d982e37”),“campus”:[{“_id”:ObjectId(“578500ee87e4c326183e5201”),“country”:“GB”,“coreId”:NumberInt(14677),“city”: “诺里奇”} ] }
-
但这与更新中使用
{ "_id": ObjectId("57f25706762c06cb7d9422fc") }查询文档的查询完全不同 -
再次导入db时变了,id没有问题了
标签: mongodb mongodb-query mongodb-php