如果单查询中不存在嵌入文档,那么如何更新集合中的嵌入文档或插入文档?假设我有一份像下面这样的文件。“记录”是一组嵌入的文档。
{
id: "1",
records: [
{userId:"5", userData: "..."},
{userId:"12", userData: "..."},
{userId:"27", userData: "..."}
]
}我知道如何在单独的查询中插入或更新“记录”。但是,我能否将这些查询组合起来,使其类似于MySQL在重复键更新时的工作方式?我希望避免执行另一个查询,只是为了找出是否存在嵌入式文档。
db.myCollection.update(
{id:"1", records.userId:"12"},
{records.$.userData:{"... new data ..."}}
);
db.myCollection.update(
{id:"1"},
{records:
{$push:
{userId: "33", userData: {"... new data ..."}}
}
}
);谢谢
发布于 2012-09-19 02:29:04
https://stackoverflow.com/questions/12487537
复制相似问题