/ / MongoDb Variable to String - string, mongodb, variáveis

Variável MongoDb para String - string, mongodb, variáveis

No shell do MongoDb

db.keyword.update({"state":"UT"}, {$unset:{"abc.def":1}});

unsets remove def do abc. No entanto, se eu fizer assim:

var key = "def"

var key1 = "abc."+key
db.keyword.update({"state":"UT"}, {$unset:{key1:1}});

não desaneca def.

Como faço para desanexar "abc.def" passando key1?

Respostas:

4 para resposta № 1

Sim, é assim que o json parser funciona. Pelo padrão, as chaves hash devem ser colocadas entre aspas, mas alguns analisadores são muito tolerantes e permitem que você as omita. Então, é assim que o mongo vê seu código.

db.keyword.update({"state": "UT"}, {"$unset": {"key1": 1}});

Você pode contornar este problema construindo o hash manualmente. Algo assim:

var key = "def";
var key1 = "abc." + key;

var mod = {"$unset": {}};
mod["$unset"][key1] = 1;

db.keyword.update({"state": "UT"}, mod);