当按键名称中包含点时如何使用
$unset
?
const key = "test"
const result = await db.collection(collection).updateOne(
{ [key]: { $exists: true } },
{ $unset: { [pathToKey]: 1 } }
);
鉴于此文件:
{
"test": {
"a": "b", // <- test.a successfully erases the 'a' key
"v0.0.1": "ok" // <- test.v0.0.1 fails
}
}
当
pathToKey
为'test.a'
时,成功擦除a
键
当它
'test.v0.0.1'
时失败,可能是因为密钥名称中包含.
我使用的是最新的Mongo版本
MongoDB不支持带点的键 http://docs.mongodb.org/manual/reference/limits/#Restrictions-on-Field-Names
也许你可以使用解决方法,但我认为使用不同的键会更好