我使用jenssegers mongodb包。
这是我的收藏品
DB::connection('mongodb')->collection('users')->insertGetId(array('name' => 'John Doe', 'users' => [
[
'id' => 100,
'wallet'=>20.20
],
[
'id' => 101,
'wallet'=>10.66
]
]));
我试图删除特定的wallet
记录。以下是代码
DB::connection('mongodb')->collection('users')->where('name', 'John Doe')->where('users.id',100)->unset('users.wallet');
但它没有按预期工作。我怎样才能做到这一点?
答案 0 :(得分:1)
要从子文档数组中取消设置字段,您必须编写users.$.wallet
而不是users.wallet
DB::connection('mongodb')->collection('users')->where('name', 'John Doe')->where('users.id',100)->unset('users.$.wallet');
看看official unset documentation of mongodb。在部分行为中,将解释$
- 符号。