MongoDB,查詢某個屬性 id 等於記錄 id 的所有文件?
為此,請使用 $where 並進行 == 比較。我們建立一個包含文件的集合 -
> db.demo69.insertOne( ... { ... "_id" : ObjectId("507c7f79bcf86cd7994f6c0e"), ... "Details" : { ... ... "id" : ObjectId("507c7f79bcf86cd7994f6c0e") ... } ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("507c7f79bcf86cd7994f6c0e") } > db.demo69.insertOne( ... { ... "_id" : ObjectId("507c7f79bcf86cd7994f6c0f"), "Details" : { ... "id" :ObjectId("507c7f79bcf86cd7994f6c0a") ... } ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("507c7f79bcf86cd7994f6c0f") }
使用 find() 方法從集合中顯示所有文件 -
> db.demo69.find();
這將產生以下輸出 -
{ "_id" : ObjectId("507c7f79bcf86cd7994f6c0e"), "Details" : { "id" : ObjectId("507c7f79bcf86cd7994f6c0e") } } { "_id" : ObjectId("507c7f79bcf86cd7994f6c0f"), "Details" : { "id" : ObjectId("507c7f79bcf86cd7994f6c0a") } }
以下是在某個屬性 id 等於記錄 id 的情況下查詢所有文件的查詢 -
> db.demo69.find({ ... $where: function(){ ... return this._id.toString() == this.Details.id.toString(); ... } ... }).pretty();
這將產生以下輸出 -
{ "_id" : ObjectId("507c7f79bcf86cd7994f6c0e"), "Details" : { "id" : ObjectId("507c7f79bcf86cd7994f6c0e") } }
廣告