我想使用capped collection并像这样写一些文件:
// this code insert only first document using capped collection
MongoDatabase database = mongoClient.getDatabase("db");
database.createCollection("capped_collection",
new CreateCollectionOptions().capped(true).sizeInBytes(536870912).maxDocuments(5000));
MongoCollection<Document> collection = database.getCollection("capped_collection");
Document found = database.getCollection("capped_collection").find(new Document("title", title)
.append("url", url)
.append("img", img)
.append("price", price)).first();
if (found == null) {
collection.insertOne(new Document("title", title)
.append("url", url)
.append("img", img)
.append("price", price));
mongoClient.close();
}
在这种情况下,有上限的集合使我只能插入第一个文档,仅此而已(我想要几个而不是一个)。如果我创建普通收藏,我可以插入几个文档。为什么会发生?
MongoDatabase database = mongoClient.getDatabase("db");
MongoCollection<Document> collection = database.getCollection("normal_collection");
Document found = database.getCollection("normal_collection").find(new Document("title", title)
.append("url", url)
.append("img", img)
.append("price", price)).first();
if (found == null) {
collection.insertOne(new Document("title", title)
.append("url", url)
.append("img", img)
.append("price", price));
mongoClient.close();
}
这样,我可以使用普通集合插入多个文档。
据我了解,将文档插入有上限的集合和普通集合之间的代码没有什么区别,但是实际上我得到的结果是不同的。
更新: 只是尝试通过Powershell手动将文档添加到封闭的集合中
如果我错了,请纠正我。感谢您的帮助。
答案 0 :(得分:0)
最后解决它。我需要to check for an existing collection:
df %>%
group_by_at(vars(-Station_id)) %>%
mutate(flag = if_else(n() == 1, 0, 1))