Chào buổi sáng. Tôi có một số câu hỏi. Tôi có những lĩnh vực này:
tên: "Mike",
thành phố: "NY",
địa chỉ: "cái gì đó",
thú cưng: ["chó", "mèo"]
Tôi đã tạo chỉ mục
db.person.ensureIndex({name: 1})
db.person.ensureIndex({city: 1})
db.person.ensureIndex({địa chỉ: 1})
db.person.ensureIndex({pets: 1})
Truy vấn là
db.person.find({$and: [{$or: [{name: "Mike"}, {city: "CA"}]}, {pets: "dog"}]}).explain()
Và tôi không nhận được truy vấn B_tree..Tôi nhận được BasicCursor...làm cách nào để khắc phục nó?
Có lẽ đã đến lúc nâng cấp phiên bản MongoDB của bạn. Sử dụng v2.2.1 tôi nhận được con trỏ BTree.
> db.person.insert({name: "Mike", thành phố: "NY", địa chỉ: "thứ gì đó", thú cưng: ["chó", "mèo"]})
> db.person.ensureIndex({name: 1})
> db.person.ensureIndex({city: 1})
> db.person.ensureIndex({địa chỉ: 1})
> db.person.ensureIndex({pets: 1})
> db.person.find({$and: [{$or: [{name: "Mike"}, {city: "CA"}]}, {pets: "dog"}]}).explain()
{
"cursor" : "BtreeCursor pet_1",
"isMultiKey" : đúng,
"n" : 1,
"nscannedObjects" : 1,
"đã quét" : 1,
"nscannedObjectsAllPlans" : 1,
"nscannedAllPlans" : 1,
"scanAndOrder": sai,
"indexOnly": sai,
"nYield" : 0,
"nChunkSkips" : 0,
"millis" : 0,
"indexBound" : {
"thú cưng" : [
[
"chó",
"chó"
]
]
}
}
Tôi là một lập trình viên xuất sắc, rất giỏi!