panhui14 2015-07-23 07:52 采纳率: 0%
浏览 1681

mongodb java 使用$insert 多出一条数据

使用update 更新一条数据进去的时候原数据没有被覆盖依然保存。代码如下
DBObject key = new BasicDBObject();
key.put("phone", phone);
key.put("phoneCode", phoneCode);
BasicDBObject updates = new BasicDBObject();
BasicDBObject doc = new BasicDBObject();
updates.put("pwd", pwd);
doc.append("$set", updates);
WriteResult result = collection.update(key, doc, true, false);
要怎样才能够去掉之前的数据。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 02:30
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在MongoDB中,如果你想要更新一个集合中的文档并删除旧的文档,你可以使用$unset操作符。这个操作符可以用来从一个或多个字段中删除指定的值,并且不会改变其他字段的内容。

    以下是一个例子:

    BasicDBObject updates = new BasicDBObject();
    updates.put("_id", ObjectId); // 如果你的ObjectId是唯一的,你可以使用它来标识你要更新的文档
    updates.put("name", "John");
    BasicDBObject doc = new BasicDBObject();
    doc.append("$unset", updates);
    WriteResult result = collection.updateOne(key, doc, true, false);
    

    在这个例子中,我们首先创建了一个包含要更新的字段和值的基本对象(updates)。然后,我们创建了另一个基本对象(doc),其中包含了我们要删除的字段。最后,我们调用collection.updateOne()方法,并传入我们的基本对象作为第一个参数,同时将true设置为returnNewDocument参数,以确保新的文档会被返回。如果我们将false替换为returnNewDocument,则原始文档将会被覆盖。

    请注意,这只是一个示例,实际使用时你可能需要根据你的需求进行调整。例如,如果你想要保留原有的ObjectId,你可以将其添加到doc中。

    评论

报告相同问题?