在 node.js 项目上使用 mongodb 和 mongoose,我想知道是否必须在嵌入项目的 _id 字段上确保索引?
也就是说,我看到 mongodb 自动在集合的 _id 字段上创建索引,它是否也对嵌入集合的 _id 字段执行相同的操作?
{
_id: "joe",
name: "Joe Bookreader",
addresses: [
{
_id: "someid1",
street: "123 Fake Street",
city: "Faketon",
state: "MA",
zip: "12345"
},
{
_id: "someid2",
street: "1 Some Other Street",
city: "Boston",
state: "MA",
zip: "12345"
}
]
}
我的直觉是否定的,所以我尝试了一下:
> db.foo.find()
> db.foo.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "foo.foo"
}
]
> db.foo.insert({
... _id: "joe",
... name: "Joe Bookreader",
... addresses: [
... {
... _id: "someid1",
... street: "123 Fake Street",
... city: "Faketon",
... state: "MA",
... zip: "12345"
... },
... {
... _id: "someid2",
... street: "1 Some Other Street",
... city: "Boston",
... state: "MA",
... zip: "12345"
... }
... ]
... })
WriteResult({ "nInserted" : 1 })
> db.foo.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "foo.foo"
}
]
>
看起来不,它不会自动在子文档上创建索引。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)