Query MongoDB Using 'ObjectId'

前端 未结 5 901
情歌与酒
情歌与酒 2020-12-09 02:15

I have inserted documents into MongoDB without an id. And I want to retrieve them by searching through their MongoDB ObjectId, that has been assign

5条回答
  •  情书的邮戳
    2020-12-09 02:55

    You can also do it this way, its

    public static ObjectId GetInternalId(string id)
        {
            if (!ObjectId.TryParse(id, out ObjectId internalId))
                internalId = ObjectId.Empty;
    
            return internalId;
        }
    

    then in your method you can do something like this

    ObjectId internalId = GetMongoId.GetInternalId(id);
            return await YourContext.YourTable.Find(c => c.InternalId == internalId).FirstOrDefaultAsync();
    

    Note: id param in GetInternalId its a parameter on that method. In case you need as this:

    public async Task Find(string id)
        {
            ObjectId internalId = GetMongoId.GetInternalId(id);
            return await YourContext.YourTable.Find(c => c.InternalId == internalId).FirstOrDefaultAsync();
        }
    

    Hope it helps also.

提交回复
热议问题