限制结果中的字段

索伦

我正在使用MongoDB v3.0.1和MongoDB Java驱动程序3.0.0-RC1。

我有一个用户集合,其中包含“用户名”,“名字”,“姓氏”,“电子邮件”等字段。

现在,我想选择所有用户,但只能使用“用户名”,“名字”和“姓氏”字段。

在Mongo-Shell上,它正在与 db.user.find({}, { "username" : true , "firstname" : true , "lastname" : true})

但是,如何用Java做到这一点呢?我尝试过final BasicDBObject query = new BasicDBObject("{}", new BasicDBObject("_id", true)); final MongoCursor<Document> usersCursor = col.find(query)

为此,我得到了一个空结果,因为它被翻译为{ "{}" : { "_id" : true , "firstname" : true , "lastname" : true}}

我也用BasicDBList尝试过,但这未被接受 col.find()

我将使用“旧的” Mongo 2.x驱动程序 new BasicDBObject(BasicDBObject(), new BasicDBObject("username", true).append("firstname", true).append("lastname", true)

是否有可能这样做或我必须获取所有字段?

问候
索伦

杰敏

使用3.0.0 Java驱动程序中的新CRUD API时,正确的方法是使用与MongoCollection.find()链接的投影方法。由于投影方法采用了Bson接口的实例,因此可以使用许多不同的类来指定投影:

    // using BasicDBObject
    collection.find().projection(new BasicDBObject("username", true)
                                 .append("lastname", true)
                                 .append("firstname", true))

    // using the new Document class
    collection.find().projection(new Document("username", true)
                                 .append("lastname", true)
                                 .append("firstname", true));

    // Using the new Projections builder
    collection.find().projection(Projections.include("username", "lastname", "firstname"));

至于您说它在2.x驱动程序中的工作方式,那是不可能的,因为

new BasicDBObject(BasicDBObject(), BasicDBObject("username", true)
                                  .append("firstname", true)
                                  .append("lastname", true)

不编译。我不确定您对2.x到底做了什么,但是使用2.x(3.0驱动程序仍支持)中的DBCollection类完成此操作的正确方法是:

    collection.find(new BasicDBObject(), new BasicDBObject("username", true)
                                        .append("lastname", true)
                                        .append("firstname", true));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

限制数组字段的查询结果

来自分类Dev

使用TSQL通过字段值限制结果

来自分类Dev

根据字段值限制查询结果

来自分类Dev

在MongoDB中限制查询结果

来自分类Dev

限制输入字段中的字符

来自分类Dev

在输入字段中限制字符

来自分类Dev

数组中的MongoDB字段限制

来自分类Dev

Django 1.8中的限制字段

来自分类Dev

弹性搜索:限制数组中的搜索结果

来自分类Dev

限制CloudKit中返回的结果数量

来自分类Dev

结果总数和活动记录中的限制

来自分类Dev

如何限制PagingAndSortingRepository @Query中的结果?

来自分类Dev

如何限制在bash中查找命令的结果?

来自分类Dev

在Jekyll搜索中限制搜索结果

来自分类Dev

如何限制Wordpress中the_category的结果?

来自分类Dev

限制object.map中的结果数

来自分类Dev

限制在SQL窗口函数中设置的结果

来自分类Dev

在clausule中的何处限制结果mysql

来自分类Dev

如何限制PagingAndSortingRepository @Query中的结果?

来自分类Dev

美丽的汤不限制python中的结果

来自分类Dev

如何限制XQuery结果中的退货顺序?

来自分类Dev

在Jekyll搜索中限制搜索结果

来自分类Dev

弹性搜索:限制数组中的搜索结果

来自分类Dev

限制php mysqli中的重复结果

来自分类Dev

试图限制在 mysql 结果中显示的数量

来自分类Dev

限制 Laravel 中嵌套关系的结果

来自分类Dev

如何通过 rails 中的关联限制结果

来自分类Dev

MySQL中默认的SELECT字段限制与PHP?

来自分类Dev

解析-限制包含关系中返回的字段