1

ドット表記を使用したレコードの検索は、たとえば mongo シェルを介して可能です。

db.events.find({'events.eid':307215649389788})

Javaドライバーで同じことを達成しようとしていますが、問題は次のとおりです。

  • db.getCollection(collectionName).find(query) - クエリを DBObject として期待します。
  • 'events.eid' をキーとして DBObject を作成すると、コンストラクターは "" を追加するため、次の結果が得られます: "'events.eid'" がキーとして機能しません (シェルでも)。

どうすればこれを克服できますか?

4

1 に答える 1

2

何をしようとしているのかよくわかりませんが、これは機能します。

DBCursor cursor = coll.find(new BasicDBObject("events.eid", 307215649389788));

"Java文字列では二重引用符()を使用する必要があるため、一重引用符を使用している場合は問題になります。

于 2012-12-15T21:52:34.970 に答える