簡體   English   中英

如何在mongodb中獲取數據

[英]How to fetch the data in the mongodb

如何使用mongoshell從json文件中獲取數據

我想fecch由數據policyID在我發送的策略ID JSON文件說的是3148

我嘗試了幾種寫命令的方法,但是說獲取了0行。

db.GeneralLiability.find({"properties.id":"21281"})
db.GeneralLiability.find({properties:{_id:"21281"}})

我是否需要設置其他內容?索引,光標​​等?

樣本json

{
    "session": {
        "data": {
            "account": {
            "properties": {
            "userName": "abc.com",
            "_dateModified": "2014-10-01",
            "_manuscript": "Carrier_New_Rules_2_1_0",
            "_engineVersion": "2.0.0",
            "_cultureCode": "en-US",
            "_cultureName": "United States [english]",
            "_context": "Underwriter",
            "_caption": "Carrier New  Rules  (2.1.0)",
            "_id": "p1CEB08012E51477C9CD0E89FE77F5E51"
        },
         "properties": {
        "_xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
        "_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
        "_id": "3148",
        "_HistoryID": "5922",
        "_Type": "onset",
        "_Datestamp": "2014-10-01T04:46:33",
        "_TransactionType": "New",
        "_EffectiveDate": "2014-01-01",
        "_Charge": "1599",
        "_TransactionGroup": "t4CE4FA751F9C400D9007E692A883DA66",
        "_PolicyID": "3148",
        "_Index": "1",
        "_Count": "1",
        "_Sequence": "1"
    }
}
}

您在文檔格式方面遇到一些問題。 首先,我很確定使用下划線保留給mongo使用(我可能錯了)。 無論哪種方式都是不好的形式。 我已經為您重組了您的數據。 我不確定您為什么要嵌套這么多數據,但是我想您有充分的理由。

您會注意到,我正在使用Mongo的ObjectID作為我的_id:

{ 
"_id" : ObjectId("56e1c1f53bac31a328e3682b"), 
"session" : {
    "data" : {
        "account" : {
            "properties" : {
                "xmlns:xsd" : "http://www.w3.org/2001/XMLSchema", 
                "xmlns:xsi" : "http://www.w3.org/2001/XMLSchema-instance", 
                "HistoryID" : "5922", 
                "Type" : "onset", 
                "Datestamp" : "2014-10-01T04:46:33", 
                "TransactionType" : "New", 
                "EffectiveDate" : "2014-01-01", 
                "Charge" : "1599", 
                "TransactionGroup" : "t4CE4FA751F9C400D9007E692A883DA66", 
                "PolicyID" : "3148", 
                "Index" : "1", 
                "Count" : "1", 
                "Sequence" : "1"
            }
        }
    }
}
}

現在,如果您運行此命令,它將返回您的文檔:

{ "session.data.account.properties.PolicyID": "3148" }

這將返回_PolicyID = "3148"的文檔:

db.GeneralLiability.find({
  "session._PolicyID": "3148"
}).pretty();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM