我在MongoDB中查询3个集合,然后通过从3个独立集合的文档中获取一些字段来创建新文档。例如:我从第一个集合中取字段'A',从第二个字段中取字段'B',从第三个字段取字段'C'。
使用它们我正在创建一个像
这样的json文档var uploadDoc = {
'A' : <value of A>,
'B' : <value of B>,
'C' : <value of C>,
}
此uploadDoc正在上传到另一个集合。
问题:我希望只上传不同的uploadDoc值。默认情况下,MongoDB为每个uploadDoc提供唯一的ID。如果之前未插入具有相同A,B和C值的其他文档,如何将uplodDoc
插入集合?
我使用javascript查询集合并创建文档。
答案 0 :(得分:0)
有两种方法很简单:
使用&#34; upserts&#34;
db.collection.update(uploadDoc,uploadDoc,{ "upsert": true })
使用唯一索引
db.collection.ensureIndex({ "A": 1, "B": 1, "C": 1 },{ "unique": true });
db.collection.insert(uploadDoc); // Same thing fails :(
两者都有效。选择一个。
答案 1 :(得分:0)