在Mongo with Java中的数组中包含ObjectId的查询集合



在纯Javascript中,我可以编写这样的查询:

db.getCollection('someTable').find({
   someArray:{$elemMatch:{$eq:ObjectId("SomeObjectId")}}
});

现在我需要用Java写这个。类似这样的.collection.find().filter…

但我似乎没有做对。上面的语句是如何翻译成java的?

感谢

这可能是您想要的:

    MongoClient client = new MongoClient("localhost",27017);
    MongoDatabase db = client.getDatabase("test");
    db.getCollection("someTable").find(new BasicDBObject("someArray", new BasicDBObject("$elemMatch", new BasicDBObject("$eq", new BsonObjectId(new ObjectId("SomeObjectId"))))));

为此,您需要使用mongo客户端For java程序。

以下是mongojava的一些片段

import com.mongodb.ErrorCategory;
import com.mongodb.MongoWriteException;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import org.bson.conversions.Bson;
import sun.misc.BASE64Encoder;
public class DocumentDAO {

final MongoClient mongoClient = new MongoClient(new MongoClientURI(mongoURIString));
        final MongoDatabase mongoDatabase= mongoClient.getDatabase("Db");
        public DocumentDAO(final MongoDatabase mongoDatabase) {
                someCollection= mongoDatabase.getCollection("SomeCollecton");
            }
        Bson filter =new Document("objectId",objectName);
                 List <Document> all= someCollection.find(filter).into( new ArrayList<Document>());
                  for(Document cur:all)
                  {
                    obj=cur;
                  }}

Maven可以用来下载用于java的最新mongo驱动程序

<dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>3.0.0-rc0</version>
        </dependency>

最新更新