1
删除子域我有这样从MongoDB的文档
{
"_id": ObjectId("4ffa96436ccc195553000055"),
"on": {
"4e8614f66ccc19aa490006e3": {
"hid": ObjectId("4e8614f66ccc19aa490006e3"),
"mts": NumberInt(1352979215)
},
"4e8614f06ccc19d9340003e8": {
"hid": ObjectId("4e8614f06ccc19d9340003e8"),
"mts": NumberInt(1352979216)
},
"4e8614346ccc19aa490006df": {
"hid": ObjectId("4e8614346ccc19aa490006df"),
"mts": NumberInt(1352979218)
},
"505af2e66ccc19541d0005a9": {
"hid": ObjectId("505af2e66ccc19541d0005a9"),
"mts": NumberInt(1352979220)
},
"505af2d76ccc19f11300109a": {
"hid": ObjectId("505af2d76ccc19f11300109a"),
"mts": NumberInt(1352979221)
}
}
}
有时我需要“的”领域删除子域文件。 我这样做:
$this->collection->update(
array(
'_id' => new MongoId('4ffa96436ccc195553000055'),
"on.4e8614f66ccc19aa490006e3" => array('$exists' => true),
),
array(
'$unset' => array(
"on.4e8614f66ccc19aa490006e3" => 1
)
)
);
但字段不删除。我究竟做错了什么?
P.S我检查发送查询后的错误,我得到这个错误 修饰符和非修饰语不能混用代码:10154
其中蒙戈的版本,您使用的一切还好吗? – ggreiner
mongo的版本是1.6.5 – Kison
这通常是由于你的文档中带有'$'s的键,这似乎是它可能将'$ exists'视为非修饰符而不是操作符,但是我是相当确定'$ exists'是在1.6.5中,你可以用'“on.4e8614f66ccc19aa490006e3”=>数组('$ ne'=> null)''来尝试吗? – Sammaye