Node.js MongoDB无法$unset特定字段;末尾的自动_id字段
我正在编写代码,通过一个网站使用NodeJS的普通MongoDB驱动程序来管理一组商家。我的麻烦发生在商人试图确认他们的帐户时。预计代码将使用$unset从数据库中删除值,从而激活商户帐户。相反,查询返回true,但确认字段保持不变。下面是数据库中一个有问题的商家的示例,由db.merchants.find({})打印(添加了换行符以提高可读性): …下面是我如何尝试取消设置“确认”字段: 我确信上面的update命令实际上正在执行 关于上面的数据,我认为有趣的一点是_id字段位于末尾。。。这应该正常发生吗?这会不会弄乱update命令的$unset?如果这不是问题,那么问题是什么 提前谢谢你的帮助Node.js MongoDB无法$unset特定字段;末尾的自动_id字段,node.js,mongodb,Node.js,Mongodb,我正在编写代码,通过一个网站使用NodeJS的普通MongoDB驱动程序来管理一组商家。我的麻烦发生在商人试图确认他们的帐户时。预计代码将使用$unset从数据库中删除值,从而激活商户帐户。相反,查询返回true,但确认字段保持不变。下面是数据库中一个有问题的商家的示例,由db.merchants.find({})打印(添加了换行符以提高可读性): …下面是我如何尝试取消设置“确认”字段: 我确信上面的update命令实际上正在执行 关于上面的数据,我认为有趣的一点是_id字段位于末尾。。。这应
编辑:我说明了为什么要使用单独的findOne请求,然后进行更新。
\u id
是ObjectId的一个特殊BSON对象。使用id
字符串是不够的。您可能还想使用\u id
:
db.collection("merchants").update({_id: ObjectId(user._id)},
您可能还需要使用
查找和修改。\u id
是ObjectId的特殊BSON对象。使用id
字符串是不够的。您可能还想使用\u id
:
db.collection("merchants").update({_id: ObjectId(user._id)},
您可能还想使用查找并修改。您在user.id
中漏掉了下划线,应该是user.\u id
。现在,它正在尝试获取id为未定义的用户
如果不是这样的话,你应该在email字段上进行更新,它会工作得很好(假设它是唯一的)
文档末尾的_id无关紧要,JSON/BSON字段中没有严格的顺序。维护订单的唯一时刻是在数组内部。您在user.id
中漏掉了下划线,应该是user.\u id
。现在,它正在尝试获取id为未定义的用户
如果不是这样的话,你应该在email字段上进行更新,它会工作得很好(假设它是唯一的)
文档末尾的_id无关紧要,JSON/BSON字段中没有严格的顺序。维护订单的唯一时刻是在阵列内部。这似乎无助于。。。此外,我非常确定用户。\我使用的id已经是ObjectID类型。这似乎没有帮助。。。此外,我非常确定我使用的用户id已经是ObjectID类型。
db.collection("merchants").findOne({email: "test@test.com"}, function(err, user) {
if(err) return handleError();
if(!user) return sendFailureMessageToClient();
if(client.confirm == user.confirm) {
db.collection("merchants").update({_id: user.id},
{$unset: {confirm: true}}, someCallback);
}
}
db.collection("merchants").update({_id: ObjectId(user._id)},