1

我是 MongoDB 的初学者,我目前正在将它与 php 配对以尝试完成以下工作:
我想创建一个数据库来存储可以随时更新的信息,但它需要保留一个“添加的文档” :“ 日期。
总共:

如果文档存在: -
更新文档中除“添加文档”日期条目之外的所有内容。
ELSE
- 创建一个包含数据的文档 + 一个“添加的文档:XXXXX”日期。

对于具有这种格式的数据库:

Database{ document{ User_ID: "12345", Name: "Joe", More_Info: "" Date_Added_To_DB: "1372291496", Last_Updated:"1372291556"}}


我已经研究并询问过,到目前为止我得到的最好的是一个功能,如果它存在则更新整个文档,如果不存在则创建一个新文档。

db.Database.update({'User_ID' : $userID},{$set: {'fieldName' : new "data" }}, {upsert: true})

4

1 回答 1

1

问题是你如何确定“文件”存在?通常,您会使用唯一的 ID 来执行此操作。现在 MongoDBObjectId来救援了,因为它已经包含了一个时间戳。这也可以在查询中使用

User_ID您可能需要考虑调用该字段_id并使用数据类型,而不是使用整数字段,ObjectId以便免费获得该功能。

> db.test.insert({"foo" : "test"});
{ "_id" : ObjectId("51cb763e58bb4077aea65b3d"), "foo" : "test" }
> var foo = db.test.findOne();
> foo._id.getTimestamp();
ISODate("2013-06-26T23:16:14Z")
于 2013-06-26T23:22:05.860 回答