面试题答案
一键面试常见数据类型
- ObjectId:每个文档都有一个唯一的
ObjectId
,作为文档的主键。它是一个12字节的十六进制字符串。例如,新插入文档的_id
字段就是ObjectId
类型。 - String:用于存储文本数据,必须是UTF-8编码。例如
"Hello World"
。 - Number:可以是整数或浮点数。例如
42
(整数)或3.14
(浮点数)。 - Boolean:表示逻辑值
true
或false
。 - Array:用于存储多个值的有序列表。例如
[1, 2, 3]
或["apple", "banana"]
。 - Object:用于嵌入子文档。例如
{name: "John", age: 30}
。
插入包含多种数据类型字段的文档
db.collection.insertOne({
_id: ObjectId("645d3d2a555c67c5f0889f7e"),
name: "Alice",
age: 25,
isStudent: true,
hobbies: ["reading", "swimming"],
address: {
city: "New York",
country: "USA"
}
});
在上述示例中,使用 insertOne
方法插入了一条文档,该文档包含了 ObjectId
、String
、Number
、Boolean
、Array
和 Object
类型的字段。
查询该文档
db.collection.findOne({
_id: ObjectId("645d3d2a555c67c5f0889f7e")
});
上述代码使用 findOne
方法根据 _id
来查询插入的文档。如果要查询满足其他条件的文档,可以更改 findOne
方法中的查询条件。例如,查询年龄大于20的文档:
db.collection.findOne({
age: { $gt: 20 }
});
这里使用了 $gt
(大于)操作符。