,我要的是如下
db.idx.update({"keyword":"Some dynamic keyword"},
{$addToSet:{url: "Some dynamic url"}},
{upsert: True})
我需要在Java中的等價的MongoDB查詢的MongoDB中要執行的查詢嵌入文檔,我曾嘗試很多,但我一直在得到錯誤。我對Java和MongoDB都很陌生,但我很想學習,所以請幫助我!而且,如果你可以向我解釋這個查詢的JSON和它的結構。萬分感謝提前:d(Y)
編輯: -
我曾嘗試: -
client = new MongoClient("localhost");
db = client.getDB("idx");
BasicDBObject lurl = new BasicDBObject();
BasicDBObject lurl2 = new BasicDBObject();
BasicDBObject lkey = new BasicDBObject();
for(Element e : links){
DBCollection colls = db.getCollection(e.text());
lurl.put("$addToSet", e.attr("href"));
lurl2.put("url", new BasicDBObject(lurl));
lkey.put("keyword", e.text());
colls.update(lkey, lurl2, true, false);
}
,我收到的錯誤是: -
Exception in thread "main" java.lang.IllegalArgumentException: Document field names can't start with '$' (Bad Key: '$addToSet')
at com.mongodb.DBCollection.validateKey(DBCollection.java:1829)
at com.mongodb.DBCollection._checkKeys(DBCollection.java:1787)
at com.mongodb.DBCollection._checkValue(DBCollection.java:1810)
at com.mongodb.DBCollection._checkKeys(DBCollection.java:1788)
at com.mongodb.DBCollection._checkObject(DBCollection.java:1774)
at com.mongodb.DBCollectionImpl.update(DBCollectionImpl.java:250)
at com.mongodb.DBCollection.update(DBCollection.java:191)
at com.mongodb.DBCollection.update(DBCollection.java:224)
at myse.MySE.extractLinkData(MySE.java:55)
at myse.MySE.crawl(MySE.java:61)
at myse.MySE.main(MySE.java:69)
的Java結果:1 BUILD SUCCESSFUL(總共13秒)
您應該提供一個代碼示例和您收到的錯誤以顯示您迄今的工作量。 –
@ChristianP我添加了我的代碼以及運行該程序時得到的異常。請看看它(Y) –
我認爲你構建錯誤的查詢。在lurl2中放置'「$ addToSet」',在'lurl'中放入''url「。 –