从MongoDb集合中检索数据时,您只能使用投影选择所需的数据。在Java中,您可以在使用projection()方法从集合中读取文档时投影必要的数据。在的结果上调用此方法find()
,绕过所需的文件名的名称,如下所示:
projection(Projections.include("name", "age"));
以下Java示例从集合中读取文档,使用投影,我们仅显示name和age字段的值。
import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Projections; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.bson.Document; import com.mongodb.MongoClient; public class ProjectionExample { public static void main( String args[] ) { //创建一个MongoDB客户端 MongoClient mongo = new MongoClient( "localhost" , 27017 ); //连接到数据库 MongoDatabase database = mongo.getDatabase("myDatabase"); //创建一个收集对象 MongoCollection<Document>collection = database.getCollection("students"); Document document1 = new Document("name", "Ram").append("age", 26).append("city", "Hyderabad"); Document document2 = new Document("name", "Robert").append("age", 27).append("city", "Vishakhapatnam"); Document document3 = new Document("name", "Rhim").append("age", 30).append("city", "Delhi"); //插入创建的文档 List<Document> list = new ArrayList<Document>(); list.add(document1); list.add(document2); list.add(document3); collection.insertMany(list); System.out.println("Documents Inserted"); collection = database.getCollection("students"); //检索文件 FindIterable<Document> iterDoc = collection.find().projection(Projections.include("name", "age")); Iterator it = iterDoc.iterator(); while (it.hasNext()) { System.out.println(it.next()); } } }
输出结果
Documents Inserted Document{{_id=5e8966533f68506911c946dc, name=Ram, age=26}} Document{{_id=5e8966533f68506911c946dd, name=Robert, age=27}} Document{{_id=5e8966533f68506911c946de, name=Rhim, age=30}}
我不知道语法是什么意思。感谢任何帮助。 谢谢你。
正如你所看到的,我的答案是不正确的。我仍然不明白为什么会这样,所以让我们再把一切都过一遍。 创建大小为2的循环队列 入列8,当前队列:8 进入队列8,当前队列:8,8 前端:8(队列没有变化) 进入队列4,当前队列:4,8 出列,当前队列:8 队列1,当前队列:8,1 进入队列1,当前队列:1,1 后面:1(队列没有更改) 为空:false(队列没有更改) 前端:1(队列未更改) 出列,当前队列:
翻译的结果是什么?它会把高级语言变成汇编语言还是机器语言,即二进制代码? 如果是后者,这是否意味着解释语言与介绍集没有关系? 一种语言只能有一个口译员?是因为解释器不做任何优化,所以我们不需要找到更好的解释器吗?
在使用Tomcat时,我一直将视为或的等价物。似乎很自然,可能必须有某种方法来配置web服务器。 但是,我不太理解的用途。例如,在使用JDBC时,为什么必须在中添加,并在中添加包含更多信息的?我可以删除文件并在代码中实例化吗?我问是因为像这样的假设例子有助于我理解。 为什么我必须把这两个都放在那里才能使用JDBC?它们到底在做什么,除了在Java代码中,还有其他方法可以做同样的事情吗?就像我说的,
问题内容: 为简单起见,请设想这种情况,我们有一台2位计算机,它具有一对称为r1和r2的2位寄存器,并且仅适用于立即寻址。 假设位序列 00 表示 添加 到我们的CPU中。也 01 的装置将数据移动到R 1和 10组 的装置将数据移动到R2。 因此,这台计算机和一个汇编器都有一种汇编语言,其中的示例代码将像 简而言之,当我将此代码汇编成本地语言时,文件将类似于: 上面的12位是以下代码的本机代码:
请向我解释为什么我总是得到这个错误: 显然,我只在开发模式下得到它,它不会在我的生产构建中发生,但这非常烦人,我根本不明白在我的开发环境中出现错误不会在prod上显示的好处--可能是因为我缺乏理解。 或者强制使用如下构造函数检测更改:: 但是为什么我总是遇到这个错误呢?我想了解它,这样我就可以避免这些黑客修复在未来。