0
我在我的test
數據庫中有這個集合。MongoDB - 在嵌入式文檔上發現奇怪的行爲
[test] 2014-02-11 18:45:48.338 >>> db.blog.posts.find();
{
"_id" : ObjectId("52ee29bdb8eb94049427886a"),
"comments" : [
{
"author" : "Jane",
"comment" : "yes, yes, it is",
"votes" : 5
}
],
"content" : "This is a post",
"id" : 5
}
{
"_id" : ObjectId("52f95c5bd1fe9c171fe4344b"),
"comments" : [
{
"author" : "Jane",
"comment" : "yes, yes, it is",
"votes" : 5
},
{
"author" : "Nick",
"comment" : "test",
"votes" : 10
},
{
"author" : "John",
"comment" : "new one",
"votes" : 4
}
],
"content" : "This is a post",
"id" : 5
}
當我運行此查找查詢:
[test] 2014-02-11 18:45:50.318 >>> db.blog.posts.find({ "comments" : {author : "Jane", comment: "yes, yes, it is", votes: 5}});
我得到兩個文件了。
但是,如果我運行此查找查詢
[test] 2014-02-11 18:46:18.428 >>> db.blog.posts.find({ "comments" : {author : "Jane", comment: "yes, yes, it is", votes: {$gte : 5}}});
我沒有得到任何文件了。
這是爲什麼?如何來== 5給我結果回來,但> = 5不返回任何東西。
非常好。也許這將有助於解釋第一個查詢起作用的原因,而第二個查詢不起作用,因爲在第一種情況下,存在滿足被查詢的*確切*表單的文檔。第二種情況使用*修飾符*,因此需要用** $ elemMatch ** –
@NeilLunn包裝謝謝並感謝那位太太的回答。 –